break & continue
break : 루프 탈출
: 단독으로 사용하지 못한다.
: 루프문과 함께 사용해야 한다.
: for, while, do-while문
continue : 생략(skip)
: 단독으로 사용하지 못하고 반드시 루프문과 함께 사용해야 한다.
: loop문 안에 처리를 생략
형식 :
for(int i = 0; i < 10; i++){
처리1
처리2
if(i == 6){
continue;
}
처리3
} // i가 6일 때 처리3은 생략
break문 사용법
for(int i = 0; i < 50; i++){
System.out.println("i = " + i);
if(i == 33){
System.out.println("탈출");
break;
}
}
char array[] = {'A', 'B', 'C', 'D', 'F'};
for(int i = 0; i < array.length; i++){
System.out.println(array[i]);
if(array[i] == 'D'){
break;
}
}
: i가 33번째일 때 루프문 종료
: 문자열에 D일 때 루프문 종료
- 값이 나오며 출력하지 않고 탈출
int arrNumber[] = {3, 6, 8, -2, 9, 1};
for(int i = 0; i < arrNumber.length; i++){
if(arrNumber[i] < 0){
break;
}
System.out.println("arrNumber[" + i +"] = " + arrNumber[i]);
}
: 0보다 작으면 탈출하라는 조건문 추가
forEach문에서도 사용 가능
for(int num:arrNumber){
if(num < 0){
break;
}
System.out.println("num = " + num);
}
: 동일하게 -가 나오면 탈출
2중 for문 탈출
for(int i = 0; i < 5; i++){ // -> 3
System.out.println("i = " + i);
for(int j = 0; j < 3; j++){ // -> 1
System.out.println("\tj = " + j);
if(i == 3 && j == 1){
break;
} // break는 하나의 loop만 탈출시킴
}
}
: 이렇게 작성하면 첫번째 for문은 탈출을 하지 않는다.
: i = 4를 출력하고, j도 모두 출력해버림.
: 즉, break는 하나의 loop만 탈출시킨다.
그럼 어떻게 모두 탈출시키냐?
첫 번째 방법(같은 조건을 두번 작성)
boolean b = false; // false로 선언해야함
for(int i = 0; i < 5; i++){ // -> 3
System.out.println("i = " + i);
for(int j = 0; j < 3; j++){ // -> 1
System.out.println("\tj = " + j);
if(i == 3 && j == 1){
b = true;
}
if(b == true){
break;
}
}
if(b == true){
break;
}
}
: if 조건에 왔을 때 b가 true로 바뀐다.
: 그리고 다시 if문으로 b가 true일 때 탈출하도록 break를 건다.(안쪽 loop문 종료)
: 마지막으로 안쪽 if가 true일 때 바깥쪽 for문도 탈출이 되어야하니 바깥쪽 if문도 true조건 걸고 break를 건다.
두 번째 방법(break 구문에 탈출 loop를 지정)
out:for(int i = 0; i < 5; i++){ // -> 3
System.out.println("i = " + i);
for(int j = 0; j < 3; j++){ // -> 1
System.out.println("\tj = " + j);
if(i == 3 && j == 1){
break out;
}
}
}
: for문 앞에 이름을 지정해준다.(out, get, tag 아무거나 상관없음.)
: 지정한 이름을 "break (이름)" 형식으로 작성
: 두 번째 방법이 아주 간단하다.
continue문 사용법
for(int i = 0; i < 10; i++){
System.out.println("start i = " + i);
if(i > 6){
continue;
}
System.out.println("end i = " + i);
} // i가 6인 경우에는 실행되지 않는다.
: start는 0 ~ 9까지 모두 출력되지만
: end는 0 ~ 6까지 출력된다.
'Java' 카테고리의 다른 글
Java) 계산기 프로그램(calculator) (0) | 2024.12.30 |
---|---|
Java) 사용자 입력 양수 검증 및 배열 저장 프로그램 (0) | 2024.12.28 |
Java) 순환(loop) : while문 & do-while문 정리 (0) | 2024.12.27 |
Java) 순환(loop) : for문 정리 예제 및 활용 (0) | 2024.12.27 |
Java) 조건문 : switch 정리 예제 (0) | 2024.12.27 |