1. 程式人生 > >return、break、continue三者的區別(轉載只為查閱方便,若有侵權,立刪)

return、break、continue三者的區別(轉載只為查閱方便,若有侵權,立刪)

前言

一般剛開始遇到這三個關鍵字,都會有點亂,return還好,特別是break和continue,特別容易搞混,所以這裡記錄一下

正文

 1、return :直接跳出當前的方法,返回到該呼叫的方法的語句處,繼續執行

 

 2.   break:在迴圈體內結束整個迴圈過程

 

 3.  continue :結束本次的迴圈,直接進行下一次的迴圈

測試

 這樣說還好像還是有點不太直觀,直接放程式碼測試一下:
 我分別為return ,break,continue 寫了三個方法,
  相同點:方法裡面都是一個for迴圈,每次迴圈都會做列印,結束迴圈後在方法體中也會列印,方法執行結束返回主
                 函式後也有列印。
  不同點:其中在for迴圈中做了一個條件判斷,如果i = 3時,三個方法分別執行return ,break,continue

這樣我們通過列印資訊就可以看到三個關鍵字對於for迴圈執行過程的控制和當前所在方法執行過程的控制啦


三個測試函式:

 
  1. package aa;

  2.  
  3. public class Test {

  4.  
  5. public static void main(String[] args) {

  6.  
  7. testBreak();

  8. testContinue();

  9. testReturn();

  10.  
  11. System.out.println("--主函式------------");

  12.  
  13. }

  14.  
  15. /**

  16. * break測試方法

  17. */

  18. private static void testBreak() {

  19. for (int i = 0; i < 5; i++) {

  20.  
  21. if (i == 3) {

  22. break;

  23. }

  24. System.out.println("--break------------" + i);

  25. }

  26.  
  27. System.out.println("--break-------for迴圈外-----");

  28.  
  29. }

  30.  
  31. /**

  32. * continue測試方法

  33. */

  34. private static void testContinue() {

  35. for (int i = 0; i < 5; i++) {

  36.  
  37. if (i == 3) {

  38. continue;

  39. }

  40. System.out.println("--continue------------" + i);

  41. }

  42.  
  43. System.out.println("--continue-------for迴圈外-----");

  44.  
  45. }

  46.  
  47. /**

  48. * Return測試方法

  49. */

  50. private static void testReturn() {

  51. for (int i = 0; i < 5; i++) {

  52.  
  53. if (i == 3) {

  54. return;

  55. }

  56. System.out.println("--return------------" + i);

  57. }

  58.  
  59. System.out.println("--return-------for迴圈外-----");

  60.  
  61. }

  62.  
  63. }


break的測試列印結果


continue的測試列印結果


return的測試列印結果

結論:

    從列印可以看出:
    break:     當i = 3時,執行break後,直接到for迴圈外,列印--break-------for迴圈外-----,所以break的作用是結束
                     迴圈
    continue: 當i = 3時,執行continue後,沒有列印接下的--continue------------3,但是下一次迴圈還是列印了,所以
                      continue只是結束了本次迴圈,
    return:     當i = 3時,執行return後,不僅結束了迴圈,而且結束了方法,直接回到主函數了,所以return的作用
                      是結束了所在方法的呼叫

總結:

  return     : 作用於方法,結束當前方法,主要用來返回方法返回值,當方法有返回值的時候,返回對應型別的返回
                     值,沒有返回值時,可以返回空,或者不返回
  continue : 作用於語法結構,結束當前方法,結束當前結構,主要用於迴圈的加速
  break      : 作用於語法結構,作用於結構結束當前結構,主要多用於迴圈和switch結構中

這裡說一下,我上面說的結構,是指迴圈體結構結構,switch結構等,不知道怎麼形容了這種東西了,哈哈,感覺語法結構咋一聽也不知道是什麼,解釋一下哈

理解好這個三個關鍵字,使用這三個關鍵字可以提高程式碼的執行效率。

注意:

當前兩個字,是指當前所在的結構,例如下面當break出現在迴圈體中的switch語句體內時,其作用只是跳出該switch語句體

程式碼:

breakbreak

 
  1. /**

  2. * break測試方法

  3. */

  4. private static void testBreak1() {

  5. for (int i = 0; i < 5; i++) {

  6.  
  7. switch (i) {

  8. case 3:

  9. break;

  10. default:

  11. System.out.println("--switch------------" + i);

  12. }

  13. System.out.println("--for---------------" + i);

  14. }

  15.  
  16. System.out.println("----------for迴圈外-----");

  17.  
  18. }


列印結果: