Java程式設計思想----控制執行流程
1,if-else結構
if-else結構我們可以將其理解為是一種條件判斷語句,當滿足其中一個分支結構的boolean判斷條件的時候就執行這個分支的語句,但不再執行剩下分支的條件哪怕是滿足條件的時候,所以我們在使用if-else結構的時候都將判斷域切分成幾個互不相交的集合來構建相應的分支結構。
所以if-else結構可以只又if語句,當滿足條件的時候就執行;也可以是if-else結構,這種結構我們的判斷域往往是而分類,不是A就是B,不是執行if語句就是執行else語句;還有就是if-else if-eles結構,在if和else結構之間可以出現多個else if語句,表明我們的判斷域是被劃分成多個的,與它相似的是switch語句,但其只接受整型(int)和字元型(char),如果判斷的條件返回值較複雜還是使用else if結構吧。
2,迭代
while,do-while,for,foreach四種
下面我們來分別介紹這四種:
while,準-行模式。什麼意思呢?就是在while語句開始的時候首先判斷所給出的boolean判斷語句是否成立,如果返回的是true就接著執行while裡面的語句。
do-while,行-準模式。在do-while語句當中會首先執行do-while裡面的語句,當完成了第一個迭代之後再來判斷while裡面的boolean語句是否返回的是true,所以我們也常問迴圈語句當中哪個總是執行一次迭代呢?do-while
for,以次數為判斷的依據。for迴圈語句當中包含了四部分:a,初始化。b,boolean判斷。c,執行語句。d,某種形式下的步進。
for(int i=0;i<10;i++){
System.out.println(i);
}
用上面這個簡單的例子來解釋下for迴圈的執行過程,在第一次迭代的時候先執行i這個變數的初始化,你也可以把這個初始化放到for語句的外面使其變成一個全域性變數,然後判斷i<10這個boolean式是否為true,如果為true就執行System.out.println(i)這個for迴圈的主體語句,執行後在到i++這個步進式。而在第二次迭代開始就不執行變數初始化了,執行順序和上面一樣。
for語句()裡面的三個用;隔開,他們都可以不出現,如果初始化不出現就意味著需要在迴圈外面構建,如果boolean判斷式或者步進沒有的話那就可能是無限迴圈了,相當與在while和do-while裡面填入一個true。
這裡還有一個叫逗號分隔操作符
for(int i = 1,j = i + 1;i < 5;i++,j = i * 2){
.....
}
就是在for語句中有兩個初始變數i和j,在初始化的時候只需要一次int宣告就好了(指相同型別)。
foreach,俗稱的增強型for迴圈,用於直接遍歷一個數據容器(如:陣列等)。
int[] a = {1,2,3,4,5};
for(int i:a){
System.out.println(i);
}
從容器中按順序取出元素賦值給一個變數,再按要求執行語句。所以for迴圈就是自定義了迴圈的次數,而foreach就是按照已定的資料容器來執行相應次數的命令。
3,return
return是一個關鍵詞,其一般有兩個作用。a,給指定方法放回一個指(假設它沒有void返回值);b,退出當先方法,就是終止了該方法不再執行return後面的語句了。
4,break和continue
break出現在迴圈當中時將強行終止掉迴圈返回到迴圈的起始位置當不再進入到迴圈體內,而continue則是終止掉當前輪的迭代返回到迴圈的起始位置重新進入到迴圈體內。
5,標籤話break和continue
就是當我們在使用內外層迴圈的時候可以給迴圈打上標籤,在使用break和continue時後跟標籤,這個將不再返回到迴圈的起始位置而是標籤的位置
outer:
for(;true;){
inner:
for(;i<10li++){
print("i = " + i);
if(i == 2){
print("continue");
continue;
}
if(i == 3){
print("break");
break;
}
if(i == 7){
print("continue outer");
i++;
continue outer;
}
if(i == 8){
print("break outer");
break outer;
}
for(int k = 0;k<5;k++){
if(k ==3){
print("continue inner");
continue inner;
}
}
}
}
6,switch
這也是一個條件分支語句和if-else是相似的,就是其switch後面跟的語句是返回一個整型或者字元型,然後判斷返回的內容是否和哪個case的值相同,相同就執行這個case後面的所有語句(包括這個case後面的全部case,如果不想執行的話就加上break,直接去到switch的末尾),如果沒有相應的case值與之相同就直接跳到default執行後面的語句(這裡說下default後面是沒必要跟個break的)。