코드 그라데이션
Day05-2. Break문 예제 본문
Break 예제
(1)
public class BreakTest {
public static void main(String[] args) {
int a = 0;
while(true) {
while(true) {
System.out.println("a : "+a);
if(a == 10) {
break;
}
a++; // a = a + 1;
}
}
}
실행순서
a = 0이 내려와요. 10인가요? 아니죠.
a 하나 증가해요. 다시 1이 올라가요. 10인가요? 아니죠. 그럼 1이 내려와서 다시 2가 되어 올라가요...
그러다가 10이 되면? 10 찍히고 break!
그 이후엔 계속 10만 찍히고 계속~~~ 10만 찍히면서 일부러 멈출 때까지 반복한다.
만약, continue 가 break 자리에 대신 생기면, 두 번째 while문의 처음으로 돌아가는 거겠지
즉, a++ 까지 아예 가질 못한다.
그래서
결과가 같더라도 "여길 갔다왔냐, 안 갔다왔냐"를 가벼이 여기시면 안돼요.
(2)
public class BreakTest2 {
public static void main(String[] args) {
int a = 0;
while(true) {
switch(a){
case 0:
System.out.println(a);
break;
default:
System.out.println("값이 없습니다. ");
}
}
}
}
0만 미친듯이 출력된다.
계속 0에 걸릴 것이기 때문에
이거 탈출하려면?
아까 했던 것처럼 check를 false 만들어주면 된다.
boolean check = true;
while(check) {
switch(a){
case 0:
System.out.println(a);
check = false;
break;
default:
System.out.println("값이 없습니다. ");
}
}
// check를 안 쓰고 싶다면?
while (a==0) {
switch (a) {
case 0:
System.out.println(a);
a++;
break;
default:
System.out.println("값이 없습니다. ");
}
}
// 0 한 번만 나오고 끝난다.
두 번째 예시에서, 일단 i 가 0이므로 우선 들어가야 해. 그래서 a는 0일 수밖에 없다.
0에서 1이 증가되면 더이상 0이 아니므로 조건에 맞지 않으니 나가게 되는 것.
728x90
'Java > Mega' 카테고리의 다른 글
Day06. Random 클래스, 반복문 퀴즈 (0) | 2023.03.23 |
---|---|
Day05-3. Continue문 예제 (0) | 2023.03.20 |
Day05-1. Break, Continue, 그리고 퀴즈 (0) | 2023.03.19 |
String 변수 = ""; 를 왜 썼는지 chat GPT에게 질문 (0) | 2023.03.19 |
break문 chat GPT 설명 / 메서드화 연습 (0) | 2023.03.17 |
Comments