-
Notifications
You must be signed in to change notification settings - Fork 1
Day 08(21.09.09)
break문은 반복문인 for, while, do-while문의 실행을 중지할때 사용한다. 이전에 학습한 switch-case문에서도 break;를 사용하여 각 case를 컨트롤한 적이 있다. 아래는 반복문에서 break문을 사용했을 때의 실행 흐름이다.
for (contidion) {
실행문
break;
(아래 실행문은 실행되지 않고 for문 밖으로 벗어난다.)
}
while (condition) {
실행문
break;
(아래 실행문은 실행되지 않고 while문 밖으로 벗어난다.)
}break문은 대개 if문과 같이 사용되어 조건식에 따라 for문과 while문을 종료할때 사용한다.
아래는 몇까지 더해야 50이 넘는지를 알려주는 프로그램이다..
import java.util.Scanner;
public class BreakTest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int total = 0;
int num = 0;
while (true) { // true일때 실행문이 반복되므로 무한히 반복된다.
total = total + num; //total에 num을 계속 더하고
num++; //num은 1씩 증가한다.
if (total > 50) { //total이 50을 초과하면
break; // 반복문이 종료된다.
}
}
System.out.println(num - 1);
}
}만약 반복문이 중첩되어 있을 경우에 break문은 가장 가까운 반복문만 종료하고
바깥쪽 반복문은 종료시키지 않는다. 이 경우에 바깥쪽 반복문까지 종료시키려면 "labeling"을 사용하면 된다.
public class BreakOutterExample {
public static void main(String[] args) {
for(char upper = 'A'; upper <= 'Z'; upper++) {
for(char lower = 'a'; lower <= 'z'; lower++) {
System.out.println(upper + "-" + lower);
if(lower == 'g') {
break;
}
}
}
System.out.println("프로그램 실행 종료");
}
}위의 프로그램을 실행하면,소문자는 g까지만 실행되고 대문자가 다음 문자로 넘어간다.
이 프로그램에서 대문자 A 단계만 반복을 시키고 싶을 경우엔 아래와 같이 외부 반복문(대문자 반복)에 label을 붙인뒤, "break label명;"으로 사용하면된다.
public class BreakOutterExample {
public static void main(String[] args) {
Outter: for(char upper = 'A'; upper <= 'Z'; upper++) {
for(char lower = 'a'; lower <= 'z'; lower++) {
System.out.println(upper + "-" + lower);
if(lower == 'g') {
break Outter;
}
}
}
System.out.println("프로그램 실행 종료");
}
}continue문은 반복문(for, while, do-while)에서만 사용되는데, 블록 내부에서 continue문이 사용되면 for문의 증감식 또는, while과 do-while문의 조건식으로 이동한다. 실행 흐름은 다음과 같다.
for (contidion) {
실행문
break;
(아래 실행문은 실행되지 않고 condition으로 돌아간다.)
}
while (condition) {
실행문
break;
(아래 실행문은 실행되지 않고 condition으로 돌아간다.)
}continue문은 반복문을 종료하지 않고, 계속 반복을 수행한다는 점에서 break문과 차이가 있다.
또한, break문과 마찬가지로 대개 if문과 같이 사용하는데, 특정 조건을 만족하는 경우에 continue문을 사용하여 그 이후의 문장을 실행하지 않고 다음 반복으로 넘어간다.(condition으로 돌아간다.) 아래는 1부터 10 사이의 짝수만 출력하는 프로그램이다.
public class ContinuePractice {
public static void main(String[] args) {
for (int i = 1; i < 11; i++) {
if(i % 2 == 1) {
continue;
}
System.out.println(i);
}
}
}result
2
4
6
8
10
1에서 10까지의 정수를 출력하는 반복문에서, 만약(if) 홀수가 나오면(i % 2 ==1) 실행하지 않고 조건식으로 이동하기 때문에 홀수 결과는 도출되지 않는다.