Javaの基本---ループ構造

Javaの基本-ループ構造(2つ)-複数のループ

はじめに:前述の単一ループを使用すると、発生した多くの問題をすでに解決できますが、なぜ複数ループを使用するのですか?もちろん、発生した問題を1つのサイクルで解決できない場合は、複数のサイクルを使用できます。

[例:前に説明したループ構造を使用して次のグラフィックを出力する方法]
ここに画像の説明を挿入
最初のループ構造は実行できるかもしれませんが、2番目のループ構造はより面倒で、3番目のループ構造はあきらめます。

したがって、この種のビット問題をよりよく解決するには、複数のサイクルを学習することが不可欠です。

マルチループとは

ここに画像の説明を挿入

フォーカス

ここに画像の説明を挿入

上記のように、複数のループの基本構造はもちろん、3層、4層などにすることもできます。ただし、3層を超えないようにすることをお勧めします、3層を超えるため、プログラム実行の効率が大幅に低下します。

しかし、ループから抜け出したい場合はどうでしょうか。

前の章で話しましたブレーク、実際には、継続する戻る
ここに画像の説明を挿入
ここに画像の説明を挿入

複数のループの例

1.まず、複数のループを使用して最初の2つのグラフィックを実行します
//平行四边形
 for (int i = 0; i <5 ; i++) {						//控制行数
            for (int k = 0; k <4-i ; k++) {			//列-空格
                System.out.print(" ");
            }
            for (int j = 0; j < 5; j++) {			//列-*
                System.out.print("*");
            }
            System.out.println();
 }
//金字塔
System.out.println("请输入你要几行");          	  //输出数字金字塔
        int n = new Scanner(System.in).nextInt();
        for(int i =1;i<=n;i++){                   //外层循环控制行数,内层循环控制列
            for(int j=1;j<=n-i;j++){              //空格
                System.out.print(" ");
            }
            for(int k=1;k<=2*i-1;k++){            //输出内容
                System.out.print("*");			  //其实这里的 * 可以改成 i,你们可以试一下哦
            }
            System.out.print("\n");
  }
//圣诞树--其实就只在金子塔的基础上加了奇偶判断
System.out.println("请输入你要几行");          		  //圣诞树(上面的加入奇偶行判断)
        int n = new Scanner(System.in).nextInt();
        for(int i =1;i<=n;i++){                       //外层循环控制行数
            for(int j=1;j<=n-i;j++){                  //空格
                System.out.print(" ");
            }
            if(i%2==0){
                for(int k=1;k<=2*i-1;k++){            //输出内容
                    System.out.print("~");
                }
            }else {
                for(int k=1;k<=2*i-1;k++){            //输出内容
                    System.out.print("*");
                }
            }
            System.out.print("\n");
  }

結果を図に示します。
ここに画像の説明を挿入

次に、複数のサイクルの古典的な問題について少しやってみましょう

1.素数

//输出2-100之间的素数
for (int i = 2; i <=100 ; i++) {			//外层循环2-100
            int tag = 0;					//标记是否为素数
            for (int j = 2; j <i ; j++) {	//内层循环从2到自生
                if(i%j==0){					//判断是否为素数
                    break;
                }else {
                    tag = 1;
                }
            }
            if(tag==1){
                System.out.print(i+"\t");
         	 }
 }

ここに画像の説明を挿入
[ヒント:ここでの出力形式は少し見苦しいです。心配しないでください。次の章を終えた後、1行あたりの行数に応じて出力できます。
2。9* 9九九

//9*9乘法表
for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(i+"*"+j+"="+i*j+"\t");
            }
            System.out.println();
 }

ここに画像の説明を挿入

別の形式の9 * 9九九

for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= 9-i; j++) {
                System.out.print("\t\t");		//为了美观这里格式不要出
            }
            for (int j = 1; j <= i; j++) {
                System.out.print(i+"*"+j+"="+i*j+"\t");
            }
            System.out.println();
 }

ここに画像の説明を挿入
2つの違いがわかります。

3.回文の数

//回文数
System.out.println("请输出一个数,判断它是否为回文数");
        int x = new Scanner(System.in).nextInt();
        if (x < 0) {
            System.out.println(false);
        }
        int reverse = 0;
        int number = x;
        while (number != 0) {
            int temp = number % 10;		//取最后一个数
            number /= 10;				//去掉最后一位
            reverse = reverse * 10;		//低位变高位
            reverse += temp;			//形成相反的数
        }
System.out.println(reverse==x);			//比较反转前后,相同则是回文数

結果を図に示します。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_43288259/article/details/112499460