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


之前的文章我們介紹了 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  */

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM