java 分支語句(翻譯自Java Tutorials)

來源:互聯網
上載者:User
break語句

break語句有兩種形式:標籤和非標籤。在前面的switch語句,看到的break語句就是非標籤形式。可以使用非標籤break,結束for,while,do-while迴圈,如下面的BreakDemo程式:

class BreakDemo {    public static void main(String[] args) {        int[] arrayOfInts =             { 32, 87, 3, 589,              12, 1076, 2000,              8, 622, 127 };        int searchfor = 12;        int i;        boolean foundIt = false;        for (i = 0; i < arrayOfInts.length; i++) {            if (arrayOfInts[i] == searchfor) {                foundIt = true;                break;            }        }        if (foundIt) {            System.out.println("Found " + searchfor + " at index " + i);        } else {            System.out.println(searchfor + " not in the array");        }    }}

這個程式在數組終尋找數字12。break語句,如上的粗體,當找到只時,結束for迴圈。控制流程就跳轉到for迴圈後面的語句。程式輸出是:

Found 12 at index 4

無標籤break語句結束最裡面的switch,for,while,do-while語句。而標籤break結束最外面的語句。接下來的程式,BreakWithLabelDemo,類似前面的程式,但使用嵌套迴圈在二維數組裡尋找一個值。但值找到後,標籤break語句結束最外面的for迴圈(標籤為"search"):

class BreakWithLabelDemo {    public static void main(String[] args) {        int[][] arrayOfInts = {             { 32, 87, 3, 589 },            { 12, 1076, 2000, 8 },            { 622, 127, 77, 955 }        };        int searchfor = 12;        int i;        int j = 0;        boolean foundIt = false;    search:        for (i = 0; i < arrayOfInts.length; i++) {            for (j = 0; j < arrayOfInts[i].length;                 j++) {                if (arrayOfInts[i][j] == searchfor) {                    foundIt = true;                    break search;                }            }        }        if (foundIt) {            System.out.println("Found " + searchfor +                               " at " + i + ", " + j);        } else {            System.out.println(searchfor +                               " not in the array");        }    }}

程式輸出是:

Found 12 at 1, 0

break語句結束標籤語句,它不是傳送控制流程到標籤處。控制流程傳送到緊隨標記(終止)聲明。

 

continue語句

continue語句忽略for,while,do-while的當前迭代。非標籤模式,忽略最裡面的迴圈體,然後計算迴圈控制的boolean運算式。接下來的程式,ContinueDemo,通過一個字串的步驟,計算字母“p”出現的次數。如果當前字元不是p,continue語句跳過迴圈的其他代碼,然後處理下一個字元。如果當前字元是p,程式自增字元數。

class ContinueDemo {    public static void main(String[] args) {        String searchMe             = "peter piper picked a " +              "peck of pickled peppers";        int max = searchMe.length();        int numPs = 0;        for (int i = 0; i < max; i++) {            // interested only in p's            if (searchMe.charAt(i) != 'p')                continue;            // process p's            numPs++;        }        System.out.println("Found " +            numPs + " p's in the string.");    }}

這裡是程式輸出:

Found 9 p's in the string.

為了更清晰看效果,嘗試去掉continue語句,重新編譯。再跑程式,count將是錯誤的,輸出是35,而不是9.

標籤continue語句忽略標籤標記的外層迴圈的當前迭代。下面的程式例子,ContinueWithLabelDemo,使用嵌套迴圈在字元傳的字串中搜尋字串。需要兩個嵌套迴圈:一個迭代字串,一個迭代正在被搜尋的字串。下面的程式ContinueWithLabelDemo,使用continue的標籤形式,忽略最外層的迴圈。

class ContinueWithLabelDemo {    public static void main(String[] args) {        String searchMe            = "Look for a substring in me";        String substring = "sub";        boolean foundIt = false;        int max = searchMe.length() -                   substring.length();    test:        for (int i = 0; i <= max; i++) {            int n = substring.length();            int j = i;            int k = 0;            while (n-- != 0) {                if (searchMe.charAt(j++)                    != substring.charAt(k++)) {                    continue test;                }            }            foundIt = true;                break test;        }        System.out.println(foundIt ?            "Found it" : "Didn't find it");    }}

這裡是程式輸出:

Found it
 return語句

最後的分支語句是return語句。return語句從當前方法退出,控制流程返回到方法調用處。return語句有兩種形式:一個是傳回值,一個是不傳回值。為了返回一個值,簡單在return關鍵字後面把值放進去(或者放一個運算式計算)

return ++count;

return的值的資料類型,必須和方法聲明的傳回值的類型符合。當方法聲明為void,使用下面形式的return不需要傳回值。

return;
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.