java提供了continue和break來控制循環結構,除此之外,return可以結束整個方法,當然也就結束了一次循環。
break:
某些時候需要在某種條件下出現時強行終止循環,而不是等到循環條件爲false時才退出循環。此時就可以用break完成此功能。break用於完全結束一個循環,跳出循環體,不管哪種循環,一旦在循環體中遇到break,系統就完全結束該循環。
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;
}
}
}
}
}
輸出結果爲:
break後的標籤必須是一個有效的標籤,即這個標籤必須在break語句所在的循環定義之前定義,或者在其所在循環的外層循環之前定義。
continue:
continue的功能和break有些類似,但continue只是忽略本次循環剩下的語句,接着開始下一次的循環,並不會終止循環;而break則是完全終止循環本身。
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;
}
}
}
}
}
輸出結果爲:
continue後也可以緊跟一個標籤,用於直接跳過標籤所標識循環的當次循環的剩下語句,重新開始下次循環。這個標籤通常應該放在continue所在循環的外層循環之前定義。
return:
return並不是專門用於結束循環的,它的功能是結束一個方法,當一個方法執行到一個return語句時,那麼這個方法將被結束。
public class ReturnTest {
public static void main(String[] args) {
//一個簡單的for循環
for(int i = 0; i < 3; i++){
System.out.println("i的值是:" + i);
if(i == 1){
return;
}
System.out.println("return後的輸出語句");
}
}
}
輸出結果爲:
return直接結束整個方法,不管這個ruturn處於多少層循環之內。