此篇單獨對循環結構的知識點進行整理:
之前講到循環結構分為:for循環,while循環,do...while循環三種最基本的循環結構;在JDK1.5以後的版本也提供了foreach循環,用於進行數組和集合的遍歷。
循環語句的四個組成部分:
#初始化部分
循環條件部分
迴圈體部分
##迭代部分
#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-100中的所有偶數
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」,在每個5的倍數的行印出「biz」,在每個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(){},一旦使用,會無法在同時滿足3、5、7的倍數的行數中同時打印三個字段,因為一旦有一個滿足判斷條件就不會執行下方的if判斷語句從而直接跳出目前迴圈執行下一次迴圈。
還有很多小的基礎的for循環演算法,如列印1-100所有奇數的和、印出所有的水仙花數(水仙花數可以自己搜尋),這些題可以自行練習,有助於加強對for循環的理解,這裡就不一一贅述了。 while 迴圈:初始化條件
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迴圈是能夠實現互相轉換的,因為二者擁有同樣的四部分,只是四部分放置的位置不同。
while循環的另一個循環方式:
#do...while 循環:
初始化條件
# 迴圈體
# 迭代條件
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中文網其他相關文章!