###### tags: `Java 學習筆記` # Java 學習筆記 - 2-1: 迴圈 ## while 迴圈 ```java= public class ConterControlled { public static void main(String[] args) { int counter = 1; while (counter <= 10) { System.out.println(counter); ++counter; } } } ``` * 第三行: 控制變數的名稱 counter, 且初始化為 1 * 第四行: 迴圈執行的條件 - 檢測 counter 中的數值 * 第九行: 將 counter 遞增 * 程式或是 app 會跑,就是在一個無限迴圈之中 * 只能在 while 迴圈外做初始化,相關變數的空間無法釋出 ## for 迴圈 ```java= public class ConterControlled { public static void main(String[] args) { int sum = 0; int i; for (i =1; i < 11; i++) { sum += i; } } } ``` * for 迴圈要有兩個分號,可以區別三個地方,這邊的分號沒有換行的意思 * 第一個區塊是初始化: 第一次進入 for 迴圈,只做一次 * 第二個區塊是判斷: 每一圈開始之前會做的判斷 * 第三個是改變: 每一圈結束之後的改變,可以想成最後加上這一行 * 第二或第三空白會變成無限迴圈 * 在 for 迴圈生命週期中宣告的變數,可以在生命周期結束後再次宣告 * 在 for 迴圈內被宣告的變數每一輪都會被釋放,在下一輪又被創建 * 如果只有一行內容的話,大括號可以被省略,但如果加分號就會錯 ```java= public class ConterControlled { public static void main(String[] args) { int i; for (i =1; i < 11; i++) System.out.println(i); } } ``` * 對初學者來說,控制變數盡量不要在迴圈內將內容做更改 ## do while 迴圈 ```java= public class ConterControlled { public static void main(String[] args) { int i = 0; do { System.out.println(i); i++; } while (i > 10); } } ``` * 執行順序和其他不同:第一次不用判斷無論如何都會執行,之後才會判斷 ### break & continue | break | continue | | -------- | -------- | | 會讓程式停止,馬上跳出大括號 | 忽略迴圈當圈 | | 只在迴圈中使用 while, for, do while <br> switch (例外) | 只在迴圈中使用 while, for, do while <br> switch (例外) | ### return 結束程式,不限定在迴圈內使用 或用於回傳值 ### 利用迴圈讓使用者輸入 #### 輸入某個數字後停止 ```java= public class MainClass { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n; while (true) { n = sc.nextInt(); if (n == 1) { break; } } } } ```