Javaでピラミッド型の星形パターン(*)を出力する方法を解説
本記事では、Javaプログラムを使ってピラミッド型の星形パターン(*)をコンソールに出力する方法を詳しく解説します。このパターンは、複数のforループと出力ステートメントを組み合わせることで簡単に描画できます。ループ処理の基礎を学びたい初心者の方に最適な題材ですので、ぜひ最後までご覧ください。
実行結果のイメージ
まずは、実際の入出力例を見てみましょう。
入力
ユーザーから次のように行数を入力してもらう想定です。
Enter the number of rows : 8
出力
上記の入力に対する期待される出力は以下の通りです。
The pyramid star pattern :
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
各行では、先頭に空白を配置して中央揃えの形状を作り、その後に「*」を半角スペース区切りで増やしながら表示しています。
アルゴリズムの流れ
ピラミッドパターンの出力は、以下の手順で実現できます。
- 処理を開始する。
- 整数型の変数
i、j、my_inputを宣言する。 - ユーザーから必要な値を読み込む、または値をあらかじめ定義しておく。
- 外側のforループと内側のforループを組み合わせて、文字の前に置く空白(インデント)を生成する。
- 内側のループの処理が終わったら、別のforループで「*」を反復出力する。
- 1行分の出力が完了したら改行し、次の行へ移る。
- 結果をコンソールに表示する。
- 処理を終了する。
ポイントは、空白を出力するループと星を出力するループを分けて考えることです。これにより、左側に段々とずれたきれいなピラミッド形状が作れます。
例1:ユーザー入力から行数を受け取る場合
ここでは、Scannerクラスを使ってユーザーから行数を入力してもらい、その値をもとにパターンを出力します。当サイトのコーディングツール
を使えば、この例をブラウザ上で実際に動かしてみることも可能です。
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 :
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
まとめ
ピラミッド型の星形パターンの出力は、「空白を制御する内側ループ」と「星を出力する内側ループ」を、行数を管理する外側ループで包むという構造になっています。変数の値を変えることで任意の行数のパターンが出力でき、ネストしたループの理解を深める練習問題としても非常に有用です。ぜひ実際にコードを書いて、さまざまなパターン出力に挑戦してみてください。
-
Javaで文字列を出力するプログラムの書き方|サンプルコード付きで解説
この記事では、Javaで文字列を出力する方法について詳しく解説します。文字列(String)とは、文字や英数字が組み合わさって構成されるデータのことです。最も簡単に文字列を作成するには、次のように記述します。String str = Welcome to the club!!!コード内に文字列リテラルが現れると、コンパイラはその値を持つStringオブジェクトを自動的に生成します。この例では「Welcome to the club!!!」という文字列オブジェクトが作成されます。Javaにおける文字列の扱い他のオブジェクトと同様に、newキーワードとコンストラクタを使ってStringオブジェクト
-
Pythonで逆三角形の星形パターン(*)を出力するプログラム
Pythonで星(アスタリスク)のパターンを逆順、つまり逆三角形の形に出力したい場合、「for」ループを使用するのが最もシンプルな方法です。forループを使えば、指定した範囲の数値を順番に繰り返し処理しながら、必要な文字を必要な回数だけ出力できます。ポイントは、ループが1回回るごとにカウント値を減算していくことです。以下に具体的な実装例を示します。サンプルコードN=6 print(変数Nを + str(N) + に初期化しました) print(逆順の星形パターンを表示します) for i in range(N, 0, -1): print((N-i) * + i * *)実行結果変