天天看點

Java中控制循環的關鍵字(break,continue,return,System.exit(0))

文章目錄

  • ​​一、break:結束循環​​
  • ​​二、continue:結束本次循環​​
  • ​​三、return:結束方法​​
  • ​​四、System.exit(0):正常終止整個程式​​

大部分摘自:<瘋狂Java講義精粹>

一、break:結束循環

break用于完全結束一個循環,跳出循環體.

一旦在循環體中遇到break,系統将完全結束該循環,開始執行循環之後的代碼.

​break語句不僅可以結束其所在的循環,還可以直接結束其外層循環.此時需要在break後緊跟一個标簽,這個标簽用于辨別一個外層循環.​

​Java中的标簽就是一個緊跟着英文冒号(:)的辨別符.與其他語言不同,Java中的标簽隻有放在循環語句之前才有作用.

例:

public class BreakTest {
  public static void main(String[] args) {
    // 外層循環,outer作為辨別符
    outer:
    for (int i = 0; i < 5; i++) {
      for (int j = 0; j < 3; j++) {
        System.out.println("i的值為:" + i + " j的值為:" + j);
        if (j == 1) {
          //跳出outer标簽所辨別的循環
          break outer;
        }
      }
    }
  }
}
/*
運作結果:
i的值為:0 j的值為:0
i的值為:0 j的值為:1
*/      

解釋:

當j等于1時,程式遇到一個break outer;語句,這行代碼将會導緻結束outer标簽指定的循環,不是結束break所在的循環,而是結束break循環的外層循環.

​​

​通常緊跟break之後的标簽,必須在break所在循環的外層循環之前定義才有意義​

二、continue:結束本次循環

continue知識終止本次循環,接着開始下一次循環;而break則是完全終止循環本身.

可以了解為continue的作用是跳過當次循環中剩下的語句,重新開始一次新的循環.

​continue後也可以緊跟一個标簽,用于直接跳過标簽所辨別循環的當次循環的剩下語句,重新開始下一次循環.​

​ 例:

public class ContinueTest {
  public static void main(String[] args) {
    //外層循環
    outer:
    for (int i = 0; i < 5; i++) {
      //内層循環
      for (int j = 0; j < 3; j++) {
        System.out.println("i的值為:" + i + " j的值為:" + j);
        if (j == 1) {
          //跳出outer标簽所指定的循環
          continue outer;
        }
      }
    }
  }
}      

解釋:

循環變量j的值将無法超過1,因為每當j等于1時,continue outer語句就結束了外層循環的當次循環,直接開始下一次循環,内層循環沒有機會執行完成.

​​

​continue後的标簽也必須是一個有效标簽,即這個标簽通常應該放在continue所在标簽的外層循環之外定義.​

三、return:結束方法

return關鍵字并不是專門用于結束循環的,return的功能是結束一個方法.當一個方法執行到一個return語句時,這個方法将被結束.

​與continue和break不同的是,return直接結束整個方法,不管這個return處于多少層循環之内.​

四、System.exit(0):正常終止整個程式

終止目前運作的Java虛拟機。這個參數用作狀态代碼;按照約定,非零狀态代碼表示異常終止。

下面為System類中exit(int status)方法源碼:

public static void exit(int status) {
        Runtime.getRuntime().exit(status);
    }