breakとcontinueの違いは?

2071 ワード

1、テストコードの準備
 
public class T1 {

	public static void main(String[] args) {
		for (int i = 0; i < 3; i++) {
			System.out.println("+ " + i + " ");
			
			for (int j = 0; j < 2; j++) {
				System.out.println("- " + i + " ");
			}			
		}
	}

}

 
演算結果:
 
+ 0 
  - 0 
  - 0 
+ 1 
  - 1 
  - 1 
+ 2 
  - 2 
  - 2 

 
2、もし私が内層循環体内でbreakを使ったらどうなるの?
 
public static void main(String[] args) {
		for (int i = 0; i < 3; i++) {
			System.out.println("+ " + i + " ");
			
			for (int j = 0; j < 2; j++) {
				System.out.println("- " + i + " ");
				break;
			}			
		}
	}

 
+ 0 
  - 0 
+ 1 
  - 1 
+ 2 
  - 2 

 
小結:もともと内層サイクルは2回印刷されていましたが、今は1回しか印刷されていません.この結果は私が内層サイクルにbreakを加えたからです.これはbreakの役割が循環体から飛び出したことを示している.では、breakを外層循環体に置いて何の結果がありますか?その結果、私がこのようにした後、内層循環体はどんな状況でも実行できないため、エラーが発生しました.
 
4、continueはどんな役割を果たしていますか.
public class T1 {

	public static void main(String[] args) {
		for (int i = 0; i < 3; i++) {
			System.out.println("+ " + i + " ");
			
			for (int j = 0; j < 2; j++) {
				if(i == 2){
					continue;
				}
				System.out.println("- " + i + " ");
			}			
		}
	}

}

 
+ 0 
  - 0 
  - 0 
+ 1 
  - 1 
  - 1 
+ 2 

 
小結:iが2に等しくない場合、プログラムは正常に動作するが、iが2に等しい場合はcontinueされ、二次ループ後のコードは実行されないため、上の最下層の外層ループ後、ループ内層がないことがわかる.
 
まとめ:breakはループ全体を飛び出し、continueは今回のループを飛び出し、後で条件を満たして再ループできる場合は、そのループ体は再実行できます.逆にbreakはだめで、後で再循環の条件を満たすかどうかにかかわらず、循環しません.