初始化語句; while (條件判斷語句) { 循環體語句; 條件控制語句; }
while循環執行流程:
①執行初始化語句
②執行條件判斷語句,看其結果是true還是false
如果是false,循環結束
如果是true,繼續執行
③執行循環體語句
④執行條件控制語句
⑤回到②繼續
-
示例代碼:
public class WhileDemo { public static void main(String[] args) { //需求:在控制台輸出5次"HelloWorld" //for循環實現 for(int i=1; i<=5; i++) { System.out.println("HelloWorld"); } System.out.println("--------"); //while循環實現 int j = 1; while(j<=5) { System.out.println("HelloWorld"); j++; } } }

/*需求:世界最高山峰是珠穆朗瑪峰(8844.43米=8844430毫米),假如我有一張足夠大的紙,它的厚度是0.1毫米。請問,我折疊多少次,可以折成珠穆朗瑪峰的高度?*/ public class WhileTest { public static void main(String[] args) { //定義一個計數器,初始值為0 int count = 0; //定義紙張厚度 double paper = 0.1; //定義珠穆朗瑪峰的高度 int zf = 8844430; //因為要反復折疊,所以要使用循環,但是不知道折疊多少次,這種情況下更適合使用while循環 //折疊的過程中當紙張厚度大於珠峰就停止了,因此繼續執行的要求是紙張厚度小於珠峰高度 while(paper <= zf) { //循環的執行過程中每次紙張折疊,紙張的厚度要加倍 paper *= 2; //在循環中執行累加,對應折疊了多少次 count++; } //打印計數器的值 System.out.println("需要折疊:" + count + "次"); } }
初始化語句; do { 循環體語句; 條件控制語句; }while(條件判斷語句);
執行流程:
① 執行初始化語句
② 執行循環體語句
③ 執行條件控制語句
④ 執行條件判斷語句,看其結果是true還是false
如果是false,循環結束
如果是true,繼續執行
⑤ 回到②繼續
public class DoWhileDemo { public static void main(String[] args) { //需求:在控制台輸出5次"HelloWorld" //for循環實現 for(int i=1; i<=5; i++) { System.out.println("HelloWorld"); } System.out.println("--------"); //do...while循環實現 int j = 1; do { System.out.println("HelloWorld"); j++; }while(j<=5); } }
-
三種循環的區別
-
for循環和while循環先判斷條件是否成立,然后決定是否執行循環體(先判斷后執行)
-
do...while循環先執行一次循環體,然后判斷條件是否成立,是否繼續執行循環體(先執行后判斷)
-
-
for循環和while的區別
-
條件控制語句所控制的自增變量,因為歸屬for循環的語法結構中,在for循環結束后,就不能再次被訪問到了
-
條件控制語句所控制的自增變量,對於while循環來說不歸屬其語法結構中,在while循環結束后,該變量還可以繼續使用
-
-
死循環(無限循環)的三種格式
-
for(;;){}
-
while(true){}
-
-
for死循環格式 : for(;;){ } while死循環格式 : while(true){ } do..while死循環格式 : do{ }while(true);
死循環案例

/* 問題: 死循環有應用場景嗎? 例如: 鍵盤錄入一個1-100之間的整數 顧慮: 鍵盤錄入是用戶操作的, 用戶就可能會出現一些誤操作的現象 */ public static void main(String[] args) { /* for(;;){ System.out.println("我停不下來了~"); } */ /* while(true){ System.out.println("我停不下來了~"); } */ do{ System.out.println("我停不下來了~"); }while(true); System.out.println("看看我能被執行嗎?~"); // 無法訪問的語句 } }