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

Javaでピラミッド型の星形パターン(*)を出力する方法を解説

本記事では、Javaプログラムを使ってピラミッド型の星形パターン(*)をコンソールに出力する方法を詳しく解説します。このパターンは、複数のforループと出力ステートメントを組み合わせることで簡単に描画できます。ループ処理の基礎を学びたい初心者の方に最適な題材ですので、ぜひ最後までご覧ください。

実行結果のイメージ

まずは、実際の入出力例を見てみましょう。

入力

ユーザーから次のように行数を入力してもらう想定です。

Enter the number of rows : 8

出力

上記の入力に対する期待される出力は以下の通りです。

The pyramid star pattern :
       *
      * *
     * * *
    * * * *
   * * * * *
  * * * * * *
 * * * * * * *
* * * * * * * *

各行では、先頭に空白を配置して中央揃えの形状を作り、その後に「*」を半角スペース区切りで増やしながら表示しています。

アルゴリズムの流れ

ピラミッドパターンの出力は、以下の手順で実現できます。

  1. 処理を開始する。
  2. 整数型の変数 ijmy_input を宣言する。
  3. ユーザーから必要な値を読み込む、または値をあらかじめ定義しておく。
  4. 外側のforループと内側のforループを組み合わせて、文字の前に置く空白(インデント)を生成する。
  5. 内側のループの処理が終わったら、別のforループで「*」を反復出力する。
  6. 1行分の出力が完了したら改行し、次の行へ移る。
  7. 結果をコンソールに表示する。
  8. 処理を終了する。

ポイントは、空白を出力するループ星を出力するループを分けて考えることです。これにより、左側に段々とずれたきれいなピラミッド形状が作れます。

例1:ユーザー入力から行数を受け取る場合

ここでは、Scannerクラスを使ってユーザーから行数を入力してもらい、その値をもとにパターンを出力します。当サイトのコーディングツール Javaでピラミッド型の星形パターン(*)を出力する方法を解説 を使えば、この例をブラウザ上で実際に動かしてみることも可能です。

import java.util.Scanner;
public class Pyramid{
   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 pyramid star pattern : ");
      for (i=0; i<my_input; i++){
        for (j=my_input-i; j>1; 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 pyramid star pattern :
      *
     * *
    * * *
   * * * *
  * * * * *
 * * * * * *
 * * * * * * *
* * * * * * * *

例2:行数を固定値として定義する場合

次に、整数値をあらかじめプログラム内で定義し、その値を直接コンソールに表示するケースを見てみましょう。入力処理がないため、よりシンプルな構造になります。

public class Pyramid{
   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 pyramid star pattern : ");
      for (i=0; i<my_input; i++){
         for (j=my_input-i; j>1; 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 pyramid star pattern :
       *
      * *
     * * *
    * * * *
   * * * * *
  * * * * * *
 * * * * * * *
* * * * * * * *

まとめ

ピラミッド型の星形パターンの出力は、「空白を制御する内側ループ」と「星を出力する内側ループ」を、行数を管理する外側ループで包むという構造になっています。変数の値を変えることで任意の行数のパターンが出力でき、ネストしたループの理解を深める練習問題としても非常に有用です。ぜひ実際にコードを書いて、さまざまなパターン出力に挑戦してみてください。

  1. Javaで文字列を出力するプログラムの書き方|サンプルコード付きで解説

    この記事では、Javaで文字列を出力する方法について詳しく解説します。文字列(String)とは、文字や英数字が組み合わさって構成されるデータのことです。最も簡単に文字列を作成するには、次のように記述します。String str = Welcome to the club!!!コード内に文字列リテラルが現れると、コンパイラはその値を持つStringオブジェクトを自動的に生成します。この例では「Welcome to the club!!!」という文字列オブジェクトが作成されます。Javaにおける文字列の扱い他のオブジェクトと同様に、newキーワードとコンストラクタを使ってStringオブジェクト

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

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