Java學習筆記八:Java的流程控制語句之循環語句
Java的流程控制語句之循環語句
一:Java循環語句之 while;
生活中,有些時候為了完成任務,需要重復的進行某些動作。如參加 10000 米長跑,需要繞 400 米的賽道反復的跑 25 圈。在 Java 中實現功能時,也經常需要重復執行某些代碼,例如,我們為了表示“濃烈的愛”,希望輸出 1000 行“我愛你!”。顯然,此時重復敲 1000 遍輸出語句是不明智的,循環語句便是明智之舉/
Java 常用的 3 種循環: while 、 do...while 、 for
語法:
執行過程:
< 1 >、 判斷 while 後面的條件是否成立( true / false )
< 2 >、 當條件成立時,執行循環內的操作代碼 ,然後重復執行< 1 >、< 2 >, 直到循環條件不成立為止
特點:先判斷,後執行
如:
代碼如下:
public class HelloWorld { public static void main(String []args) { int i = 1; while(i<=1000){ System.out.println("我愛你!"); i++; } } }
運行結果為:
二:Java循環語句之 do...while;
do...while 循環與 while 循環語法有些類似,但執行過程差別比較大。
語法:
執行過程:
<1>、 先執行一遍循環操作,然後判斷循環條件是否成立
<2>、 如果條件成立,繼續執行< 1 > 、< 2 >,直到循環條件不成立為止
特點: 先執行,後判斷
由此可見,do...while 語句保證循環至少被執行一次!
例如,依然輸出 1000 遍“我愛你”,使用 do...while 的實現代碼為:
代碼如下:
public class HelloWorld { public static void main(String []args) { int i = 1; do{ System.out.println("我愛你!"); i++; } while(i<=1000); } }
運行結果為:
三:Java循環語句之 for;
Java 的循環結構中除了 while 和 do...while 外,還有 for 循環,三種循環可以相互替換。
語法:
執行過程:
- 執行循環變量初始化部分,設置循環的初始狀態,此部分在整個循環中只執行一次
- 進行循環條件的判斷,如果條件為 true ,則執行循環體內代碼;如果為 false ,則直接退出循環
- 執行循環變量變化部分,改變循環變量的值,以便進行下一次條件判斷
- 依次重新執行2.3.4,直到退出循環
特點:相比 while 和 do...while 語句結構更加簡潔易讀
例如,輸出 1000 遍“我愛你!”,使用 for 的實現代碼為:
代碼如下:
public class HelloWorld { public static void main(String []args) { for(int i=1;i<=1000;i++){ System.out.println("我愛你!"); } } }
運行結果為:
註:
1、 for 關鍵字後面括號中的三個表達式必須用 “;” 隔開,三個表達式都可以省略,但 “;” 不能省略。
a. 省略“循環變量初始化”,可以在 for 語句之前由賦值語句進行變量初始化操作,如:
代碼如下:
public class HelloWorld {
public static void main(String []args) {
int i=0;//循環語句之前對變量初始化
for(;i<=1000;i++){
System.out.println("我愛你!");
}
}
}
b. 省略“循環條件”,可能會造成循環將一直執行下去,也就是我們常說的“死循環”現象,如:
代碼如下:
public class HelloWorld { public static void main(String []args) { for(int i=0;;i++){ System.out.println("我愛你!"); } } }
在編程過程中要避免“死循環”的出現,因此,對於上面的代碼可以在循環體中使用 break 強制跳出循環(關於 break 的用法會在後面介紹)。
c. 省略“循環變量變化”,可以在循環體中進行循環變量的變化,如:
代碼如下:
public class HelloWorld { public static void main(String []args) { for(int i=0;i<=1000;){ System.out.println("我愛你!"); i++; } } }
2、 for 循環變量初始化和循環變量變化部分,可以是使用 “,” 同時初始化或改變多個循環變量的值,如:
代碼如下:
public class HelloWorld { public static void main(String []args) { for(int i=1,j=5;i<=5;i++,j--){ System.out.println(i+"+"+j+"="+(i+j)); } } }
代碼中,初始化變量部分同時對兩個變量 i 和 j 賦初值,循環變量變化部分也同時對兩個變量進行變化,運行結果:
3、 循環條件部分可以使用邏輯運算符組合的表達式,表示復雜判斷條件,但一定註意運算的優先級,如:
代碼如下:
public class HelloWorld { public static void main(String []args) { for(int i=1;i<10&&i!=5;i++){ System.out.println(i); } } }
代碼中,必須同時滿足變量 i 小於 10 ,並且 i 不等於 5 時才會進行循環,輸出變量 i 的值。
運行結果為:
四:Java 循環語句之多重循環;
循環體中包含循環語句的結構稱為多重循環。三種循環語句可以自身嵌套,也可以相互嵌套,最常見的就是二重循環。在二重循環中,外層循環每執行一次,內層循環要執行一圈。
如下所示:
例如:使用 * 打印長方形:
代碼如下:
public class HelloWorld { public static void main(String args[]){ //外層循環控制打印的行數 for(int a=0;a<4;a++){ //內層循環控制每行打印的*號數 for(int b=0;b<8;b++){ System.out.print("*"); } //每行打印完畢換行 System.out.println(); } } }
運行結果為:
執行流程:當 i = 1 時,外層循環條件成立,進入內層循環,開始打印第一行內容。此時, j 從 1 開始,循環 8 次,內層循環結束後換行,實現第一行 8 個 * 的輸出。接下來返回外層循環 i 變為 2 ,準備打印下一行,依此類推,直到完成長方形的打印。
Java學習筆記八:Java的流程控制語句之循環語句