パターンプログラム Java星、ピラミッド、数字を印刷する

⚡ スマートサマリー

パターンプログラム Java 星、数字、文字を一定の形状で印刷する。それらはすべて入れ子になったループで構成されており、外側のループが行数を数え、内側のループがスペースと文字を配置する。

  • 🔘 定義: パターン印刷とは、記号、数字、または文字をコンソール上に定められた形状に配置することです。
  • ☑️ カテゴリー: 星型パターン、数字型パターン、文字型パターンの3つのグループが存在する。
  • ✅ 構造: 外側のループは行を処理し、内側のループは先頭の空白と印刷された文字を処理します。
  • 🧪 例: 半三角形、砂時計、ひし形、反対三角形、文字ピラミッドなどのプログラムが網羅されています。
  • 🛠️ テクニック: 文字の形状は、整数型のシードをchar型にキャストします。文字Aの場合は65から始まります。
  • 📊 利点: パターンを書くことは、ループ制御、インデックス演算、面接のための予行演習のスキルを磨くのに役立ちます。

パターンプログラム Java 星形、ピラミッド形、数字形を印刷する

パターン印刷プログラムは、特定の形式の文字またはその他の文字を含むデザインまたはシンボルです。 Java パターン コーディングはプログラマーのロジック構築力を高め、優れたプログラマーになるのに役立ちます。

ここでのすべての例に必要なのは、ネストされたループと基本的な Java 構文。

パターンのカテゴリ

数えきれないパターンを描くことができます Java、そしてすべてのパターンは3つの異なる方法で実行できます。

識別するために使用される主なカテゴリは XNUMX つあります Java パターンプログラム。

  • 星のパターン: In Java スターパターンプログラムでは、スターパターンは一連の アスタリスク(*) ピラミッド、星、タイトな三角形、左三角形、ひし形、正方形など、さまざまな形状を作成するために使用されます。 Java.
  • 数字のパターン: フロー制御文を練習するための別のパターンタイプは、数値パターンプログラムです。 Java数パターンプログラムは、数/カウントで構成されます。通常、パターンプログラミングで数を生成するために、ループイテレータである「i」の値を設定します。数パターンの最小ループ数も2です。数パターンプログラムは、 Java 行と列のシステムにも対応しています。
  • 文字パターン: 文字パターンプログラミングは、 英語のアルファベットこれはコーディング スキルを高めるもう 1 つの方法ですが、ここでは数字や星ではなく文字を扱います。パターンは、適用するロジックに応じて、パターン全体で同じ文字を使用することも、異なる文字を使用することもできます。

以下の表は、各カテゴリー間でどのような変化があるかを示しています。

カテゴリー 印刷ユニット 印刷された値がどこから来るのか 出力例
星模様 アスタリスク シンボルは固定されているため、ループの境界のみが変更されます。 * * *
数字のパターン Digit ループイテレータ i または j が直接出力されます 1 2 3
文字パターン 手紙 整数型のシード値を文字型にキャストしたもので、Aの場合は65から始まります。 ABC

いずれの場合も、外側のループは行数をカウントし、内側のループの1つは整列用のスペースを出力し、もう1つは表示される文字を出力します。異なるのは出力される単位だけです。

同じループスキルは、次のような他の古典的なエクササイズを推進します。 選択ソート, 挿入ソート アームストロング数 プログラム。

星型パターンが最初に考慮されるのは、シンボル自体は変化せず、ループの境界だけが重要となるためである。

スターパターンプログラム Java

スター パターンはコンソールにアスタリスクを表示します。パターンの形状は作成したコードによって完全に異なります。

左半分の三角形の星パターンプログラム:

以下のプログラムは、左半分の三角形を出力します。

コンソール出力には、6行にわたる星の左半分の三角形が表示されている。

public class LeftStarPattern{    
public static void main(String args[]){    
 int i, j, row = 6;       
   for (i=0; i<row; i++)    {  
      for (j=2*(row-i); j>=0; j--)         
      {  System.out.print(" ");  
	  }   
        for (j=0; j<=i; j++ )   
		{   
			System.out.print("* "); 
		}   
	System.out.println();  
	}
  }
}

Code 説明:

  • 宣言する int i、int j。 行変数を宣言して初期化します。 整数行.
  • i は外側の 'for' ループの反復子、j は内側の 'for' ループの反復子、'row' にはピラミッドに必要な行の数が含まれます。
  • ネストされた for では、外側の 'for' は行を表し、内側の 'for' は列を表します。
  • 外側の「for」では、反復子「i」を 0 で初期化し、条件 i< row を設定して、i をインクリメントします。
  • ここで、内部の「for」ループは 2*(row-i) で初期化され、デクリメントされます。
  • ネストされた「for」は、コンソール画面にスペースを表示します。
  • ネストされた 'for' の本体の外側に、別の 'for' ループが配置されます。 この「のために」 プリントスター ネストされた「for」が実行された後。 j<=i までループします。

砂時計の星のパターンプログラム:

2つのピラミッドを積み重ねると、このような砂時計ができます。

コンソール出力には、2つの星型ピラミッドから構成される砂時計の形状が表示されている。

public class Main
{
    public static void main(String[] args)
    {
        int rows = 5;            
        for (int i= 0; i<= rows-1 ; i++)
        {
            for (int j=0; j <i; j++)
            {
                System.out.print(" ");
            }
            for (int k=i; k<=rows-1; k++)
 { 
System.out.print("*" + " ");
 } 
System.out.println(""); 
} 
for (int i= rows-1; i>= 0; i--)
        {
            for (int j=0; j< i ;j++)
            {
                System.out.print(" ");
            }
            for (int k=i; k<=rows-1; k++)
            {
                System.out.print("*" + " ");
            }
            System.out.println("");
        }
        
    }
}

Code 説明:

  • Code で始まる パブリック静的空隙 手 整数行 砂時計に含まれる行数を定義します。
  • 入れ子になった「for」が XNUMX つあり、XNUMX つ目は下向きのピラミッドを表示し、XNUMX つ目は上向きのピラミッドを表示します。
  • ネストされた for では、外側の 'for' は行を表し、内側の 'for' は列を表します。
  • 外側の 'for' ループは i<= row-1 まで、内側の 'for' は i までループします。 印刷システム コンソールにスペースを出力します。
  • XNUMX 番目の内側のループは、コンソールにアスタリスクとスペースを出力します。
  • 0 番目の内部ループが完全に実行された後、最初の内部ループが i=XNUMX で完全に実行された場合。
  • 次に、外側のループがインクリメントされます。 このサイクルは、条件が false になるまで続きます。
  • XNUMX 番目のネストされたループは、最初のネストされたループの外側のループの初期化と条件を変更するだけで、上向きのピラミッドを表示します。
  • 上向きのピラミッドが表示されます。 下向きのピラミッドと上向きのピラミッドの両方が、 砂時計の星模様.

ダイヤモンド形状の星型パターンプログラム:

上向きピラミッドと下向きピラミッドを組み合わせると、このダイヤモンドが得られます。

コンソール出力には、2つのピラミッドによって形成された星のダイヤモンドが表示されています。

public class Main
{
	public static void main(String args[])
	{
		int n, i, j, space_0 = 1;
		n = 6;
		space_0 = n - 1;
		for (j = 1; j<= n; j++)
		{
			for (i = 1; i<= space_0; i++)
			{
				System.out.print(" ");
			}
		space_0--;
		for (i = 1; i <= 2 * j - 1; i++)
		{ 
			System.out.print("*");
		}
		System.out.println(""); 
	}
	space_0 = 1;
	for (j = 1; j<= n - 1; j++)
	{
	for (i = 1; i<= space_0; i++)
	{
		System.out.print(" ");
	}
	space_0++;
	for (i = 1; i<= 2 * (n - j) - 1; i++)
	{
		System.out.print("*");
	}
	System.out.println("");
	}
  }
}

Code 説明:

  • ダイヤモンドの星模様、 「n」は行数で、space_1 に n-0 個格納されます。
  • ネストされた for では、外側の 'for' は行を表し、内側の 'for' は列を表します。
  • 最初にネストされた「for」は上向きのピラミッドを表示します。 外側の 'for' ループは n まで、内側の for ループは space_0 まで 内側のループはコンソールにスペースを表示します。
  • i<= 2 * j – 1 になるまでループする別の内部 'for' があり、この内部 'for' 印刷システムの外側に星印が表示され、行が印刷されます。 このネストされたループは、上部のピラミッドを出力します。
  • もう一方のネストされた「for」は下向きのピラミッドを表示します。 外側の 'for' は i<=n-1 までループし、最初の内側の 'for' はスペースを出力し、XNUMX 番目の内側の 'for' はスターを出力します。
  • 内側の「for」の外側に行間を出力します。 上向きピラミッドと下向きピラミッドの両方がダイヤモンドパターンを形成します。

直角三角形スターパターンスペースパターンプログラム:

jとiの絶対値は、以下のギャップを挿入します。

コンソール出力には、絶対値に基づいた間隔で配置された星の直角三角形が表示されています。

public class AsterikProgramJava { 
 public static void main(String[] args) { 
  for(int i=1;i<=10;i++) 
  { 
    for(int j=1;j<=i+i;j++)
	{
		int mid; 
		mid=j%i; 
		if(mid==0) 
			System.out.print("* "); 
		else 
			System.out.print("*");
	}
	System.out.print("\n");
	}
 }
}

Code 説明:

  • 上のパターン コードでは、外側の 'for' が行数を処理し、内側の 'for' が列を維持します。
  • 外側の「for」が 1 の場合は最初の行を意味し、内側の「for」が 1 の場合は最初の列を意味します。
  • 内側の「for」内で、mid という名前の変数を宣言し、j/i の残りを格納します。 これは、i と j の値を除算して係数を取得します。
  • したがって、係数が 0 の場合はアスタリスクとスペースを表示し、それ以外の場合はアスタリスクのみを表示します。内側の 'for' の外側に行を出力します。

モダン Java 注意事項: from Java 11 スペースループは以下で置き換えることができます System.out.print(" ".repeat(n))、各行を StringBuilder 1つ前に println() 呼び出しの実行速度が速くなります。元のコードは、計算過程が明示的に示されているため、そのまま残されています。

Swapping ループカウンターのアスタリスクは、それぞれの星形を数字の形に変換します。

数値パターンプログラム Java

数値パターンは数字で構成されており、数値パターンからさまざまな形状を描くことができます。

反対側の半三角形パターン プログラム:

数え下げてから数え上げると、このような数字の三角形が得られます。

数値の反対の半三角形を示すコンソール出力

public class Number_p  {  
	public static void main(String[] args)   {  
	int i, j, rows_0=5;  
	for (i = rows_0; i >= 1; i--) 
	{  
		for (j = 1; j <= i; j++)  
		{  
			System.out.print(j+" "); 
		}  
		System.out.println();  
	}  
	for (i = 2; i <= rows_0; i++)   {  
		for (j = 1; j <= i; j++) {  
			System.out.print(j+" ");
		}  
		System.out.println(); 
		}
	}
}

Code 説明:

  • このパターンを描画するには、XNUMX つのネストされた 'for' ループを使用します。 XNUMX つは最初のピラミッドを印刷し、もう XNUMX つは XNUMX 番目のピラミッドを表示します。
  • 宣言する int i、int j、および int row_0 を使用し、必要な行数で行を初期化します。 ここで行の値は 5 です。
  • 最初にネストされた 'for' の外側の 'for' ループを設定し、行数で i を初期化し、i >= まで反復して反復子をデクリメントします。 この外側の「for」は行を扱います。
  • 内部の「for」で条件 j=1 を設定し、j<=i になるまで繰り返します。 内側のループの本体で、j 変数をスペースを入れて表示します。
  • 次に、2 番目にネストされた 'for' で、最初にネストされた 'for' の外側の 'for' 条件を変更します。 XNUMX で初期化し、i<= 行までループします。
  • そして、内側のループは i に到達するまで繰り返されます。 次に、内側の for の本体の外側にある最初のネストされた 'for' の内側ループと同様に、コンソールにメッセージが表示されます。行スペースが表示されます。

列右三角の繰り返し番号 パターンプログラム:

各行のカウンターをリセットすると、数字が繰り返されます。

コンソール出力には、各行で1から始まる直角三角形の数字が表示されている。

public class Number_pattern  {  
	public static void main(String args[])   
	{   
		int i, j,number, n=7;   
	for(i=0; i<n; i++)  
	{   
		number=1;   
		for(j=0; j<=i; j++)  
		{   
			System.out.print(number+ " ");   
			number++; 
		}   
		System.out.println();   
	} 
  } 
}

Code 説明:

  • コード例では、次のように宣言します。 int i、整数 j、 整数ber、および int n。
  • 次に、必要な行数の値で n を初期化します。ここでは 7 です。
  • 外側の「for」では、値 0 からループを開始し、n に達するまで繰り返します。
  • ループの内側または外側で数値を初期化できます。
  • 内部の「for」では、j が i に達するかそれ以下になるまで繰り返します。 そしてスペースを入れて数字を表示します。
  • 内側の「for」の本体の外側に、行間を出力します。
  • 内部の「for」は、条件が false になるまで反復されます。 この条件が false になると、外側のループが再びインクリメントされ、条件が false になるまで内側の 'for' が実行されます。
  • この手順は、外側のループが false になるまで繰り返されます。

同じスケルトンは、int型のシードがchar型にキャストされると、文字を出力します。

文字パターンプログラム Java

文字パターンは英語のアルファベットで構成されています。 Java 以下にいくつか例を挙げる。

キャラクターハーフピラミッドパターンプログラム:

int型のシードをchar型にキャストすると、以下の文字が出力されます。

コンソール出力には、大文字のAからFまでの半ピラミッドが表示されています。

public class Character_p{
    public static void main(String[] args){
        int alphabet = 65;
        for (int i = 0; i <= 5; i++){
            for (int j = 0; j <= i; j++)
            {   
				System.out.print((char) alphabet + " ");}
				alphabet++;
				System.out.println();
			}
		}
}

Code 説明:

  • アルファベットを宣言し、値 65 で初期化します。
  • 外側の for はループを 0 から開始し、i が 5 以下になるまで繰り返します。
  • for 内では、ループは 0 から始まり、j が i 以下になるまで繰り返されます。
  • 次に、文字とスペースを出力画面に表示します。
  • 文字を印刷するには、アルファベットを整数から文字にタイプキャストします。
  • 本体の外側でアルファベットをインクリメントし、その行を出力画面に出力します。 (char) は、アルファベット値を文字に変換します。

ピラミッド/三角形のパターン Java:

スペースループが文字をピラミッド状に中央に配置する。

コンソール出力には、中央に大文字のピラミッドが表示されている。

public class CharacterPattern  
{              
	public static void main(String[] args){  
		for (int i = 0; i <= 8; i++)   
		{  
			int alphabet_0 = 65;   
			for (int j = 8; j > i; j--)  
			{  
				System.out.print(" ");  
			}  
			for (int k = 0; k <= i; k++)  
			{  
				System.out.print((char) (alphabet_0 + k) + " ");  
			}  
		System.out.println();  
	}  
  }  
} 

Code 説明:

  • このコード例では、XNUMX つの「for」ループを使用しており、XNUMX つは外側のループで、XNUMX つのループは外側の「for」内にネストされています。
  • 外側の「for」は 0 から始まり、値が 8 以下になるまでループします。
  • 外側の「for」の本体では、整数型のアルファベット変数を値 65 で初期化し、その本体にもう XNUMX つの「for」を入れ子にしました。
  • 最初の内側の 'for' は外側の 'for' ループの逆であり、その本体ではコンソール上のスペースを出力します。 その体の外側には、別の「ため」があります。 外側のループと同様に反復されます。
  • XNUMX 番目の内側ループの本体で、アルファベット +k をタイプキャストして文字を出力し、スペースを入れてコンソールに出力します。 XNUMX 番目の内側の「for」の本体の外側に行を出力します。

よくあるご質問

総行数から逆方向に数えます。左揃えの図形は不要、中央揃えのピラミッドは現在の行インデックスを引いた行数が必要で、上記の例では 2*(行-i) を使用しています。

AIアシスタントは、期待されるコンソールテキストと実際のコンソールテキストを1行ずつ比較し、1つずれているループ境界を特定できます。修正を信頼する前に、修正後のプログラムを自分で再実行してみてください。

Yes. GitHubコパイロット 1行の記述から動作する図形を生成します。生成されたコードでは図が1列ずれて中央に配置されてしまうことが多いため、スペースループを確認してください。

最も内側のループ内に境界条件判定を追加します。最初の行、最後の行、または最初の列と最後の列にのみ記号を出力し、それ以外の場所には空白を出力します。

はい。一方の再帰メソッドは行を出力し、カウントを増やして自身を呼び出しますが、もう一方のメソッドはシーケンスを管理します。出力は同じですが、ループによって余分なスタックフレームが回避されます。

n行の三角形を印刷するには、およそn²/2回の文字書き込みが必要となるため、コストはO(n²)です。出力自体は2乗に比例して増加するため、同じ図形をより速く印刷できるアルゴリズムは存在しません。

65は、大文字のAのASCIIおよびUnicodeコードポイントです。65をchar型にキャストするとAになり、66をキャストするとBになるので、int型をインクリメントしてキャストすることで、アルファベットを順番にたどることができます。

ループ制御、インデックス演算、ライブラリ不要で紙上でコードをドライランする機能を公開しています。 traces 1 行を正しく処理すると、通常はネストされた反復処理が理解されます。