1. 程式人生 > >chapter4 -- 控制執行流程

chapter4 -- 控制執行流程

基本內容

  • if-else
  • 迴圈(迭代語句)
  • return ,break和continue
  • switch語句

1.if-else

if-else語句格式如下

if(布林表示式1) {
    語句1
}else if(布林表示式2){
    語句2        
}else {//不滿足以上兩點時
    語句3
}

當僅有if判斷,並只有一條執行語句時,可以不使用大括號包圍語句體。

public static void main(String[] args) {
    int num = 3;
    if(num > 1) 
        System.out
.println("I love Java"); System.out.println("執行結束"); }

2.迴圈(迭代)語句

語句會重複執行,直到起控制作用的布林表示式得到false結果為止。

2.1 while語句

while語句格式如下:

while(布林表示式) {
    語句        
}

while語句會首先計算一次布林表示式的值,然後進入迴圈體,直到不再滿足布林表示式。

2.2 do-while語句

do-while語句格式如下:

do {
    語句        
}while(布林表示式);

do-while語句會首進入迴圈體,然後算布林表示式的值,直到不再滿足布林表示式。
所以do-while語句無論如何都需要先執行一次迴圈體。

2.3 for語句

for語句是所有流程控制語句裡面使用頻率最高的了,使用方法都是很簡單的。
for語句格式如下:

for(初始化 ; 布林表示式 ; 步進運算){
    語句
}

注意:初始化,布林表示式和步進運算都可以為空的,這樣for語句就會無限迴圈,但是這樣做在很多時候沒什麼意義。

for(int i = 1; i <= 100 ; i++) {
    if(i < 10) {
        System.out.print("0" + i + "  ");
    }else {
        System.out.print(i + "  ");    
    }
    if
(i % 5 == 0) { System.out.println(); } }

上述例子是輸出數字1~100,個位數漆面補0,5個數字換行。
整個迴圈的執行順序是:
初始化操作:int i = 1(僅在第一次進入迴圈時執行) –> 布林表示式:i <= 100 –> 迴圈體語句 –> 步進操作:i++
Tips:

  • 使用“,”分隔符在初始化操作中定義個多變數,但必須是統一型別的變數。
  • 使用“,”分隔符在步進操作中,可以寫入多條操作語句
for(int i = 1,j = 0; i <= 100 ; i++,j++) {
    if(i < 10) {
        System.out.print("0" + i + "  ");
    }else {
        System.out.print(i + "  ");    
    }
    if((j + 1) % 5 == 0) {
        System.out.println();
    }
}

2.4 for-each語句

語句格式如下:

for(型別 變數名: 被訪問物件){
    語句
}

在for-each語句中,不必再去建立int型別的計數器,for-each語句會自動生成每一項。

int[] i = {0,1,2,3,4};
for (int j : i) {
    System.out.println(j);
}

3.return,break和continue關鍵字

3.1 return關鍵字

return關鍵字在方法中用來返回值,並退出該方法。
在《Thinking in Java》中有這樣一句:

如果在返回void的方法中沒有return語句,那麼在蓋方法的結尾處會有一個隱式的return,因此在方法中並非總是必須要有一個return語句。但是,如果一個方法生命它將返回void之外的其他東西,那麼必須確保每一條程式碼路徑都將返回一個值。

3.2 break關鍵字

強制退出迴圈,並且不會再執行接下來的語句。

for(int i = 0 ; i< 5; i++) {
    if(i == 3) {
        break;
    }else {
        System.out.println(i);
    }
}
console:
0
1
2

3.3continue關鍵字

跳出當前迴圈,執行下一次迴圈。

for(int i = 0 ; i< 5; i++) {
    if(i == 3) {
        continue;
    }else {
        System.out.println(i);
    }
}
console:
0
1
2
4

4.switch語句

switch語句如下:

switch (整數選擇因子) {
case 整數值:
    語句
    break;
default:
    語句
}

switch有時也被劃歸為選擇語句。根據整數表示式的值,switch語句可以從一系列程式碼中選出一段去執行。

String season = "Spring";
switch (season) {
case "Spring":
    System.out.println("Spring");
    break;
case "Summer":
    System.out.println("Summer");
    break;
case "Autumn":
    System.out.println("Autumn");
    break;
case "Winter":
    System.out.println("Winter");
    break;
default:
    System.out.println("season");
}
console:
Spring

Tips: break不是必須的,但是有無break有時會是兩種結果。如果將上面例子中的break刪掉,則會出現以下結果

console:
Spring
Summer
Autumn
Winter
season

在某些操作中,我們可以巧妙利用這一情況。
default不是必須的,default只是提供在case中沒有匹配的情況時的一種預設操作。