在上一章節裡提到了迴圈,這章節講要來講述如何中斷或者繼續下一步。
在一般的狀況下,只要跑完迴圈就可以結束這個迴圈的動作了,例如:1 到 50累加,只要到達結束點50就可以結束了,但如果想中突結束呢?是有幾個方法可以這麼做其中有二個是中斷,另一個是叫"繼續",還有另一個是中突出現錯誤Exception而跳出。以下一一來解釋這些方法:
1.迴圈中斷break
當執行迴圈時,合乎結束條件時,迴圈就算完成任務了,但如果中突有需要跳離時呢?這時候可以使用break這個關鍵字。
只需要在想要做中斷的地方輸入break ; 就會直接結束迴圈,並向下執行迴圈外的敘述句。
例子:
//迴圈裡會印出0,1,2,3,4,5, for(int i = 0 ; i < 10;i++) { System.out.print(i+","); if(i==5)//當i==5時就先中斷這個迴圈了 break; } System.out.println("xxxxx");
答案:
0,1,2,3,4,5,xxxxx
2.回傳資料return
return是直接回傳一個資料型態或無任何型態,而不再繼續向下執行其它敘述句,所以可以中斷迴圈的執行,最常用在函數的回傳值。
用法上跟break一樣,在需要回傳值或中斷的地方直接輸入return ; 就可以中斷且不向下執行。
例子:
//迴圈裡會印出0,1,2,3,4,5, for(int i = 0 ; i < 10;i++) { System.out.print(i+","); if(i==5)//當i==5時就先中斷這個迴圈了,而且不向下執行 break; } System.out.println("xxxxx");
答案:
0,1,2,3,4,5,
3.繼續Continue
Continue是執行到此時,不在向下執行迴圈內的敘述句,而向下一個Setp執行。舉個簡單的例子,當需要做1+3+5+7時,就可以利用Continue來只執行單數的相加。
例子:
int totrec = 0 ; for(int i = 1 ; i < 10;i++) { if(i%2==0)//i除於2的餘數為0,代表雙數 continue; totrec = totrec + i; } System.out.println(totrec); System.out.println("--------"); System.out.println(1+3+5+7+9);
答案:
25 -----
//迴圈裡會印出0,1,2,3,4,6,7,8,9, for(int i = 0 ; i < 10;i++) { if(i==5)//當i==5時就不向下執行印i動作 continue; System.out.print(i+","); } System.out.println("xxxxx");
答案:
0,1,2,3,4,6,7,8,9,xxxxx
4.利用Exception離開迴圈
利用丟出錯誤來中斷執行的迴圈,可以限定是不是向下執行或著不向下執行,這跟程式內容的設計會有關系,以下舉二個例子來說明有向下執行敘述句跟沒下向下執行敘述句的使用方法,不過try catch exception會在單獨一章來講,這裡只需要知道就可以了。
例子1:
//這裡需要注意Exception會向上一層丟出所以才加上throws Exception //以後會再詳述 public static void main(String args[])throws Exception { //迴圈裡會印出0,1,2,3,4, for(int i = 0 ; i < 10;i++) { if(i==5)//當i==5時就不向下執行而丟出錯誤 throw new Exception("故意的"); System.out.print(i+","); } System.out.print("xxxxx"); }
答案:
0,1,2,3,4,Exception in thread "main" java.lang.Exception: 故意的 at hello.main(hello.java:10)
例子2:
try { //迴圈裡會印出0,1,2,3,4, for(int i = 0 ; i < 10;i++) { if(i==5)//當i==5時就不向下執行而丟出錯誤 throw new Exception("故意的"); System.out.print(i+","); } }catch(Exception e) { //System.out.println(e); } System.out.print("xxxxx");
答案:
0,1,2,3,4,xxxxx
相比其他教學,這真的很棒
但是,我希望你可以盡量避免用你先前沒有教過的東西
因為我完全沒有接觸過而且沒有人教
純粹是自學的
謝!
關於「2.回傳資料return」例子的部分,
break; 應該是return; 才對。
對!!!!!!