Java 從入門到進階之路(四)

  • 2019 年 10 月 3 日
  • 筆記

之前的文章我們介紹了 Java 的運算符和表達式,本章我們來看一下 Java 的循環結構。

循環是程式設計語言中反覆執行某些程式碼的一種電腦處理過程,是一組相同或相似語句被有規律的重複性進行。

循環的要素:

  - 循環變數的初始化

  - 循環條件(以循環變數為基礎)

  - 循環變數的改變(向著循環的結束進行改變)

Java中有三種主要的循環結構:

  • while 循環
  • do…while 循環
  • for 循環

while 循環

while是最基本的循環,它的結構為:

while(布爾表達式){      //循環內容  }

只要布爾表達式為 true,循環就會一直執行下去。

1 public class HelloWorld {  2     public static void main(String[] args) {  3         int i = 0;  4         while (i < 5) {  5             System.out.print(i); // 0 1 2 3 4  6             i++;  7         }  8     }  9 }

do…while 循環

對於 while 語句而言,如果不滿足條件,則不能進入循環。但有時候我們需要即使不滿足條件,也至少執行一次。

do…while 循環和 while 循環相似,不同的是,do…while 循環至少會執行一次。

do {
  //程式碼語句 }while(布爾表達式);

注意:布爾表達式在循環體的後面,所以語句塊在檢測布爾表達式之前已經執行了。 如果布爾表達式的值為 true,則語句塊一直執行,直到布爾表達式的值為 false。

1 public class HelloWorld {  2     public static void main(String[] args) {  3         int i = 0;  4         do {  5             System.out.print(i); // 0 1 2 3 4  6             i++;  7         } while (i < 5);  8     }  9 }

for循環

雖然所有循環結構都可以用 while 或者 do...while表示,但 Java 提供了另一種語句 —— for 循環,使一些循環結構變得更加簡單。

for循環執行的次數是在執行前就確定的。語法格式如下:

for(初始化; 布爾表達式; 更新) {      //程式碼語句  }

關於 for 循環有以下幾點說明:

  • 最先執行初始化步驟。可以聲明一種類型,但可初始化一個或多個循環控制變數,也可以是空語句。
  • 然後,檢測布爾表達式的值。如果為 true,循環體被執行。如果為false,循環終止,開始執行循環體後面的語句。
  • 執行一次循環後,更新循環控制變數。
  • 再次檢測布爾表達式。循環執行上面的過程。
1 public class HelloWorld {  2     public static void main(String[] args) {  3         for (int i = 0; i < 5; i++) {  4             System.out.print(i); // 0 1 2 3 4  5         }  6     }  7 }

Java 增強 for 循環

Java5 引入了一種主要用於數組的增強型 for 循環。

Java 增強 for 循環語法格式如下:

for(聲明語句 : 表達式){     //程式碼句子  }

聲明語句:聲明新的局部變數,該變數的類型必須和數組元素的類型匹配。其作用域限定在循環語句塊,其值與此時數組元素的值相等。

表達式:表達式是要訪問的數組名,或者是返回值為數組的方法。

 1 public class HelloWorld {   2     public static void main(String[] args) {   3         int[] list = {0, 1, 2, 3, 4};   4 //        for (String i : list) {   5 //            System.out.print(i);  // 編譯錯誤   6 //        }   7         for (int i : list) {   8             System.out.print(i); // 0 1 2 3 4   9         }  10     }  11 }

break 關鍵字

break 主要用在循環語句或者 switch 語句中,用來跳出整個語句塊。

break 跳出最裡層的循環,並且繼續執行該循環下面的語句。

public class HelloWorld {      public static void main(String[] args) {          int[] list = {0, 1, 2, 3, 4};          for (int i : list) {              if (i == 2) {                  break;              }              System.out.print(i); // 0 1          }      }  }

continue 關鍵字

continue 適用於任何循環控制結構中。作用是讓程式立刻跳轉到下一次循環的迭代。

在 for 循環中,continue 語句使程式立即跳轉到更新語句。

在 while 或者 do…while 循環中,程式立即跳轉到布爾表達式的判斷語句。 

 1 public class HelloWorld {   2     public static void main(String[] args) {   3         int[] list = {0, 1, 2, 3, 4};   4         for (int i : list) {   5             if (i == 2) {   6                 continue;   7             }   8             System.out.print(i); // 0 1 3 4   9         }  10     }  11 }

嵌套循環

循環中套循環,一般多行多列時使用,外層控制行,內層控制列。

執行過程:外層循環走一次,內層循環走所有次

建議:嵌套層次越少越好(一班最多為2層循環),次數再多說明設計有問題。

 1 public class HelloWorld {   2     public static void main(String[] args) {   3         // 九九乘法表   4         for (int i = 1; i <= 9; i++) {   5             for (int j = 1; j <= i; j++) {   6                 System.out.print(i + "*" + j + "=" + j * i + "t");   7             }   8             System.out.print("n");   9         }  10     }  11 }  12 /**  13  1*1=1  14  2*1=2    2*2=4  15  3*1=3    3*2=6    3*3=9  16  4*1=4    4*2=8    4*3=12    4*4=16  17  5*1=5    5*2=10    5*3=15    5*4=20    5*5=25  18  6*1=6    6*2=12    6*3=18    6*4=24    6*5=30    6*6=36  19  7*1=7    7*2=14    7*3=21    7*4=28    7*5=35    7*6=42    7*7=49  20  8*1=8    8*2=16    8*3=24    8*4=32    8*5=40    8*6=48    8*7=56    8*8=64  21  9*1=9    9*2=18    9*3=27    9*4=36    9*5=45    9*6=54    9*7=63    9*8=72    9*9=81  22  */

 

Tags: