java基礎-控制流語句


瀏覽以下內容前,請點擊並閱讀 聲明

一般情況下,代碼的執行按照從上到下的順序,然而通過加入一些判斷,循環和跳轉語句,你可以有條件地執行特定的語句。

接下來分三部分介紹Java的控制流語句,他們是判斷語句(if-then, if-then-else, switch),循環語句(for, while, do-while)和跳轉語句(break, continue, return)。

判斷語句

  if-then語句

if-then語句是控制流語句中最基本的語句,它告訴程序如果制定的條件為true,則執行一段特定代碼。

  if-then-else語句

if-then-else語句提供了兩條或者多條可執行的路徑。

     int testscore = 76;           
     char grade;

        if (testscore >= 90) {//如果if后條件返回true,則執行該花掛號內代碼,接着執行最后一行代碼,否則判斷下一個條件句,依次類推
            grade = 'A';
        } else if (testscore >= 80) {
            grade = 'B';
        } else if (testscore >= 70) {
            grade = 'C';
        } else if (testscore >= 60) {
            grade = 'D';
        } else {
            grade = 'F';
        }
        System.out.println("Grade = " + grade);

switch語句

  switch語句像是匹配執行的語句。switch后的括號內的數據類型可以是基礎類型中的byte,short,char,和int。也可使用枚舉類型和String(字符串),封裝了基礎類型的Character,Byte,Short,Integer。其用法如下代碼所示:

public class SwitchDemo {
    public static void main(String[] args) {

        int month = 8;
        String monthString;
        switch (month) {
            case 1:  monthString = "January";
                     break;
            case 2:  monthString = "February";
                     break;
            case 3:  monthString = "March";
                     break;
            case 4:  monthString = "April";
                     break;
            case 5:  monthString = "May";
                     break;
            case 6:  monthString = "June";
                     break;
            case 7:  monthString = "July";
                     break;
            case 8:  monthString = "August";
                     break;
            case 9:  monthString = "September";
                     break;
            case 10: monthString = "October";
                     break;
            case 11: monthString = "November";
                     break;
            case 12: monthString = "December";
                     break;
            default: monthString = "Invalid month";
                     break;
        }
        System.out.println(monthString);
    }
}

switch語句的主體又被稱為switch代碼塊,switch代碼塊內可以多個case標簽標記的代碼,default標簽可有可無,它表示如果沒有匹配的結果,則執行default標記的代碼,注意break的作用,如果沒有break,則從匹配的case開始,switch代碼塊內的所有代碼都會被執行。

循環語句

while語句

如果特定的條件為true時,while語句就會繼續執行一段代碼,執行后再對條件進行判斷不斷循環,條件為false時,循環終止。

while (expression) {//當條件為true時,執行花括號內代碼,並再次判斷
     statement(s)
}

do-while語句

do-while語句的作用與while語句類似,不過它是先執行代碼,后判斷條件,循環至條件為false為止。

do {//無論expression是否為true,先執行花掛號內代碼,然后判斷循環的條件
     statement(s)
} while (expression);

for語句

for語句有兩種用法,一種是:

  • for (initialization; termination;increment) {//注意圓括號內用分號隔開 statement(s) }
  • initialization 表達式是對整個循環的初始化,在循環開始的時候只執行一次。
  • termination表達式用於判斷循環是否終止,如果為false,則終止。
  • increment表達式每次循環都會執行一次,通常用來對一個變量增加一個值。

另外一種用法是通常是對一個數組或者集合進行遍歷:

         int[] numbers = 
             {1,2,3,4,5,6,7,8,9,10};
         for (int item : numbers) {//注意圓括號內用表達式引號隔開
             System.out.println("Count is: " + item);

其中,左邊表達式是聲明一個與數組元素類型一致,或者兼容(繼承或實現)的變量右側則是數組變量。

跳轉語句

break語句

break語句分為有標記的和無標記的兩種情況,break語句除了可以用於switch語句中之外,也可用於打斷循環語句,當沒有標記時,break打斷最內層的循環,有標記時則打斷制定標記處的循環:

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;//如果打斷標記處循環,則要指出標記名稱,此處為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

continue語句

continue用於跳過循環中剩余的部分代碼,繼續下一次循環,continue語句也分為標記代碼和未標記的用法:

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.

return語句

return語句用於方法中的返回,return語句有兩種用法,后帶返回值和不帶返回值。執行return語句后,程序會退出該方法的執行。


免責聲明!

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



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