JAVA編程思想--第4章 控制執行流程

Java在流程控制語句中,涉及到的關鍵字 if-else\while\do-while\for\return\break以及選擇語句switch.

4.1 true和false

所有條件語句都利用條件表達式的真或假來決定執行路徑。也就是說條件表達式的值最后為布爾類型,而布爾類型無法由基本類型轉換,故一些錯誤能夠避免,這些錯誤在第三章介紹了,如while(a) ,a為int類型,會報錯。

4.2 if-else

基本形式: if(Boolean-expression)。條件表達式最后值為布爾類型。

4.3 迭代

while\do-while\for用來控制循環,也叫她們為迭代語句(iteration statement).

while(Boolean-expression) statement

do
statement
while(Boolean-expression)

for(initialization;Boolean-expression:step)
statement

注意,在initialization中的變量定義后,他的作用范圍只限制于for循環中。

4.3.3 逗號操作符

JAVA里唯一用到逗號操作符的地方就是for 循環的控制表達式。它可以在for語句內定義多個變量,變量必須有相同的類型。

圖片.png

4.4 Foreach語法

圖片.png

任何一個數組都可以使用foreach。

圖片.png

foreach語法不僅在錄入代碼時可以節省時間,并且閱讀起來更容易得多。它說明你在做什么(獲取數組中的一個元素),而不是給出你正在做的細節(建立索引)。

4.5 return

JAVA中有多個關鍵詞表示無條件分支,只是表示這個分支無需任何測試即可發生。 如:return\break\continue.

return的話,注意,確保每一條代碼路徑都有返回一個值。

4.6 break 和continue

break用于強行退出循環,不執行循環中的剩余語句。而continue則停止執行當前的迭代,然后退回循環起始處,開始下一次迭代。

4.7 goto

goto起源于匯編語言的程序控制:“若條件A成立,則跳到這里,否則跳到那里”。

java中沒有goto。然而java也能提供類似于跳轉的操作,其實是中斷迭代語句的一種方法----標簽。

格式——— label1:

標簽唯一作用的地方剛好是在迭代語句之前,即在標簽和迭代語句之前無任何語句。當標簽和break一起使用時,就能夠跳出最里層循環。非常方便。

看一段代碼

label1:
outer-iteration{
  inner-iteration{
    //...
    break;  //1
    //...
    continue;//2
    //...
    continue label1; //3
    //...
    break label1;//4
  }
}

1:break中斷內部迭代,執行外部迭代剩下部分。
2:停止余下的內容,返回內部迭代起始處繼續。
3:中斷內部迭代以及外部迭代,直接轉到label1處,繼續執行外部迭代。
4:中斷內部迭代以及外部迭代,直接轉到label1處,不進入迭代。

例子:

int i=0;
        outer:
        for(;true;){
            inner:
            for(;i<10;i++){
                System.out.println("i ="+i);
                if(i==2){
                    System.out.println("continue");
                    continue;
                }
                if(i==3){
                    System.out.println("break");
                    i++;
                    break;
                }

                if(i==7){
                    System.out.println("continue outer");
                    i++;
                    continue outer;
                }
                if(i==8){
                    System.out.println("break outer");
                    break outer;
                }

                for(int k=0;k<5;k++){
                    if(k==3){
                        System.out.println("continue inner");
                        continue inner;
                    }
                }

            }
        }

continue在for循環中,返回到起始處,注意會進行累加運算,而break 不會。

4.8 switch

是一種選擇語句,會根據整數表達式的值,去尋找。

switch(integral-selector){
   case intergral-value1:statement;break;
   case intergral-value1:statement;break;
   default:statement;
 }
  • Integral-selector(整數選擇因子)是一個能產生整數值的表達式。
  • 這里使用break能夠讓其跳出循環,不然會繼續執行下面的statement.
  • 注意選擇因子必須是int或char那樣的整數值。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容