この記事では、ループ構造の知識ポイントを個別に整理します。
前に述べたように、ループ構造は、JDK1 では for ループ、while ループ、do...while ループの 3 つの最も基本的なループ構造に分かれています。 .5 以降のバージョンでは、配列とコレクションを走査するための foreach ループも提供します。
ループステートメントの 4 つのコンポーネント:
初期化部分
ループ条件部分
ループ本体部分
反復部分
for (初期化条件; ループ条件; 反復部分) {
ループ本体
}
1 public class TestFor {2 public static void main(String[] args) {3 //基础for循环,讲一个语句打印多次4 for(int i=0; i<7; i++){5 System.out.println("Hello World!! 第"+i+"次打印");6 }7 }8 }
練習問題: 1から10までの偶数をすべて出力してください0
1 public class TestFor { 2 public void PrintNum(){ 3 for(int i=1; i<=100; i++){ 4 if(i%2==0){//对2取余,若为0则证明是偶数,执行打印语句,反之则继续循环直到满足偶数条件或者i>0 5 System.out.println("i="+i); 6 } 7 } 8 } 9 public static void main(String[] args) {10 TestFor testFor = new TestFor();11 testFor.PrintNum();12 }13 }
演習: 1 から 150 までループするコードを記述し、各行に値を出力します。さらに、3 の倍数であるすべての行に「foo」を出力し、すべての行に「biz」を出力する必要があります。それは 5 の倍数です。
7 の各複数行に "baz" を出力します
1 public class TestFor { 2 public void FooBizBaz(){ 3 for(int i=1; i<=150; i++){ 4 System.out.print(i+":"); 5 if(i%3 == 0){ 6 System.out.print(" foo"); 7 } 8 if(i%5 == 0){ 9 System.out.print(" biz");10 }11 if(i%7 == 0){12 System.out.print(" baz");13 }14 System.out.println();15 }16 }17 public static void main(String[] args) {18 TestFor testFor = new TestFor();19 testFor.FooBizBaz();20 }21 }
注: else if(){} は、一度使用すると、この質問では使用できないことに注意してください。 5 を同時に満たさない場合は、1 つでも判定条件を満たすと以下の if 判定文が実行されず、7 の倍数の行数で 3 つのフィールドを同時に出力します。現在のループは直接飛び出して次のループを実行します。
1 から 100 までのすべての奇数の合計を出力する、すべての水仙数を出力する (水仙数は自分で検索できます) など、小さな基本的な for ループ アルゴリズムも多数あり、これらの問題は自分で練習することができます。 for ループの理解を強化するために、ここでは詳細には触れません。
初期化条件
while(ループ条件) {
ループ本体
反復条件
}
例 : 1-100の範囲内のすべての偶数を出力
1 public class TestWhile { 2 public void evenNum(){ 3 int i = 1; //初始化条件 4 while(i<=100 ){//循环条件 5 6 if(i % 2 == 0){ 7 System.out.println("i="+i); 8 }//循环体 9 10 i++;//迭代条件11 }12 }13 14 public static void main(String[] args) {15 TestWhile testWhile = new TestWhile();16 testWhile.evenNum();17 }18 }
注: for ループと while ループは、同じ 4 つの部分を持ち、異なる位置に配置されているため、相互に変換できます。
whileループの別のループ方法:
do...whileループ:
初期化条件
do{
ループ本体
反復条件
}while (ループ条件); 上記の構造からわかるように、do...while ループは最初にループを実行して決定します。ループ条件が満たされている場合、満たされていれば次のサイクルが続行され、満たされていない場合はサイクルが停止します。
例: 1 ~ 100 のすべての偶数を出力します
1 public class TestDoWhile { 2 public void evenNum(){ 3 int i = 1; 4 do{ 5 if(i % 2 == 0){ 6 System.out.println("i="+i); 7 } 8 i++; 9 }while(i <= 100);10 }11 public static void main(String[] args) {12 TestDoWhile testDoWhile = new TestDoWhile();13 testDoWhile.evenNum();14 }15 }
do...while和while循环的区别:
do...while循环中 初始化条件即使不满足循环条件也会直接执行一次循环体再进行循环条件判断,所以循环体至少被执行一次,而while循环是必须满足循环条件才会执行循环体。
顾名思义,嵌套循环就是再一个循环中还能再声明一个循环
几种嵌套方式:
1.for循环中能够嵌套一个for或多个for;
2.while循环中可以嵌套一个或多个while循环;
3.for循环中可以嵌套一个或多个while循环;
4.while循环中可以嵌套一个或多个for循环;
5.for循环中可以嵌套一个或多个for/while循环;
6.while循环中可以嵌套一个或多个for/while循环。
示例:
For之间嵌套
1 public class TestForFor { 2 /*打印出 ***** 3 * ***** 4 * ***** 5 * ***** 6 * */ 7 public void forQianTao(){ 8 for(int i = 1; i <= 4;i++){ 9 for(int j = 1; j<=5 ;j++){10 System.out.print("*");11 }12 System.out.println();13 }//此为两层循环,i用于控制打印的行数,j用于控制打印的列数14 }15 public static void main(String[] args) {16 TestForFor testForFor = new TestForFor();17 testForFor.forQianTao();18 }19 20 }
其它几种嵌套循环可以参考上面的示例,结构类似。自己可以进行练习,如通过嵌套循环打印九九乘法表、或者打印一个由星号组成的菱形图案,每个星号之间要有一个空格,这些题可以加强对嵌套循环的理解。
以上がJava プログラム フロー制御のサンプル チュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。