1. 程式人生 > 實用技巧 >Java流程控制11:break、continue、goto

Java流程控制11:break、continue、goto

break,continue的區別:
  • break在任何迴圈語句的主體部分,均可用break控制迴圈的流程。break用於強行退出迴圈,不執行迴圈中剩餘的語句。(break語句也在switch語句中使用)
  • continue語句用在迴圈與具體中,用於終止某次迴圈過程,既跳過迴圈體中尚未執行的語句,接著進行下一次是否執行迴圈的判定。
break程式碼示例(break的作用):
package com.wenjian.struct;

public class BreakDemo {
    public static void main(String[] args) {
        int i = 0;
        while (i < 100) {
            i++;
            System.out.println(i);
            if (i == 30) {
                break;    //強行退出迴圈,不執行迴圈中剩餘的語句
            }
        }

        System.out.println("123");
    }
}

輸出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
123

程序已結束,退出程式碼 0
continue程式碼示例(continue的作用):
package com.wenjian.struct;

public class ContinueDemo {
    public static void main(String[] args) {
        int i = 0;
        while (i < 100) {
            i++;
            if (i % 10 == 0) {
                System.out.println();
                continue;   //終止某次迴圈過程,既跳過迴圈體中尚未執行的語句,接著進行下一次是否執行迴圈的判定
            }
            System.out.print(i);
        }
        //如果在這裡加入System.out.print(i); ,那麼輸出跳出while迴圈,
        //輸出100
    }
}

輸出:

123456789
111213141516171819
212223242526272829
313233343536373839
414243444546474849
515253545556575859
616263646566676869
717273747576777879
818283848586878889
919293949596979899

程序已結束,退出程式碼 0
關於goto關鍵字(瞭解):
  • goto關鍵字很早就在程式設計語言中出現。儘管goto仍是Java的一 個保留字,但並未在語言中得到正式使用; Java沒有goto。然而,在break和continue這兩個關鍵字的身上, 我們仍然能看出一些goto的影子—帶標籤的break和continue.
  • “標籤”是指後面跟一個冒號的識別符號,例如: label:
  • 對Java來說唯一用到標籤的地方是在迴圈語句之前。而在迴圈之前設定標籤的唯一理由是:我們希望在其中巢狀另個迴圈,由於break和continue關鍵字通常只中斷當前迴圈,但若隨同標籤使用,它們就會中斷到存在標籤的地方。

雖然Java中的goto不起作用,但Java 中同樣可以定義標籤(當然Java中標籤的設計不是為了goto),使用識別符號加冒號的形式,如“mylabel:

”。

goto標籤的使用(不建議使用):
package com.wenjian.struct;

public class LableDemo {
    public static void main(String[] args) {
        //列印101~150之間的質數
        //不建議使用
        outer:for (int i = 101; i < 150; i++) {
            for (int j = 2; j <= i / 2; j++) {
                if (i % j == 0) {
                    continue outer;
                }
            }
            System.out.print(i + " ");
        }
    }
}

輸出:

101 103 107 109 113 127 131 137 139 149 
程序已結束,退出程式碼 0