Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで上向きの星形三角形パターンを出力する方法

この記事では、Javaを使って上向きの星形(アスタリスク)三角形パターンをコンソールに出力する方法を解説します。このパターンは、複数のforループとprint文を組み合わせることで簡単に作成できます。

出力イメージ

入力例

ユーザーからの入力が以下であるとします。

Enter the number of rows : 8

出力結果

上記の入力に対する期待される出力は次のとおりです。

The upper star triangle star pattern :
        *
      * *
    * * *
  * * * *
* * * * *
  * * * * * *
    * * * * * *
      * * * * * *

アルゴリズム

パターンを出力する手順は以下のとおりです。

ステップ1 - 処理を開始する
ステップ2 - 整数変数 i、j、my_input を宣言する
ステップ3 - ユーザーから値を読み込む、または値を定義する
ステップ4 - 外側のforループの中で、文字間の空白を出力するためのネストされたforループを実行する
ステップ5 - 最内ループの処理後、別のforループで必要な文字(*)を出力する
ステップ6 - 改行を出力し、次の行に移る
ステップ7 - 結果を表示する
ステップ8 - 処理を終了する

例1:ユーザー入力を使用する場合

この例では、Scannerクラスを使ってユーザーから行数を入力として受け取り、その値をもとにパターンを出力します。

import java.util.Scanner;
public class UpperStarTriangle{
   public static void main(String args[]){
      int i, j, my_input;
      System.out.println("Required packages have been imported");
      Scanner my_scanner = new Scanner(System.in);
      System.out.println("A reader object has been defined ");
      System.out.print("Enter the number of rows : ");
      my_input = my_scanner.nextInt();
      System.out.println("The upper star triangle star pattern: ");
      for (i=0; i<my_input; i++){
         for (j=2*(my_input-i); j>=0; j--){
            System.out.print(" ");
         }
         for (j=0; j<=i; j++ ){
            System.out.print("* ");
         }
         System.out.println();
      }
   }
}

出力

Required packages have been imported
A reader object has been defined
Enter the number of rows : 8
The upper star triangle star pattern:
        *
      * *
    * * *
  * * * *
* * * * *
  * * * * * *
    * * * * * *
      * * * * * *

例2:値を事前に定義しておく場合

この例では、行数となる整数値があらかじめコード内で定義されており、その値を使ってパターンが出力されます。ユーザー入力が必要ないため、動作確認や学習用途に便利です。

public class UpperStarTriangle{
   public static void main(String args[]){
      int i, j, my_input;
      my_input = 8;
      System.out.println("The number of rows is defined as " +my_input);
      System.out.println("The upper star triangle star pattern: ");
      for (i=0; i<my_input; i++){
         for (j=2*(my_input-i); j>=0; j--){
            System.out.print(" ");
         }
         for (j=0; j<=i; j++ ){
            System.out.print("* ");
         }
         System.out.println();
      }
   }
}

出力

The number of rows is defined as 8
The upper star triangle star pattern:
        *
       * *
     * * *
    * * * *
   * * * * *
  * * * * * *
 * * * * * * *
* * * * * * * *

コードのポイント

  • 外側のforループ:行数分だけ繰り返し処理を行い、各行の生成を担当します。
  • 空白を出力する内側のループ:「2×(行数−現在の行番号)」回のスペースを出力することで、右寄せの三角形形状を作り出します。
  • 星を出力する内側のループ:現在の行番号+1個の「*」を出力します。
  • System.out.println():1行の出力が完了したら改行して、次の行へ移ります。

このように、二重ループの構造を理解すれば、ピラミッド型やひし形など、さまざまな星形パターンにも応用できます。

  1. 指定した整数の正方形パターンを出力するJavaプログラム

    指定された整数に基づいて正方形パターンを出力したい場合、以下のようなJavaコードを実装できます。 サンプルコード import java.util.*; import java.lang.*; public class Demo{ public static void main(String[] args){ Scanner my_scan = new Scanner(System.in); System.out.println(Enter a range); int my_num = my_scan.nextInt();

  2. Pythonで逆三角形の星形パターン(*)を出力するプログラム

    Pythonで星(アスタリスク)のパターンを逆順、つまり逆三角形の形に出力したい場合、「for」ループを使用するのが最もシンプルな方法です。forループを使えば、指定した範囲の数値を順番に繰り返し処理しながら、必要な文字を必要な回数だけ出力できます。ポイントは、ループが1回回るごとにカウント値を減算していくことです。以下に具体的な実装例を示します。サンプルコードN=6 print(変数Nを + str(N) + に初期化しました) print(逆順の星形パターンを表示します) for i in range(N, 0, -1): print((N-i) * + i * *)実行結果変