* 탈출문
- 탈출문은 프로그램의 실행 순서를 지정된 곳으로 이동시키는 문장으로 반복문 또는 블록구조에서 빠져 나올 때 사용합니다.
- 탈출문의 키워드는 break, continue, return문이 있습니다.
- goto는 자바의 키워드에는 포함되어 있으나 사용하지는 않습니다.
- break
- break는 반복문 내의 어떤 곳이든 위치할 수 있으며, 처리 도중에 break를 만나면 반복문을 곧바로 빠져나옵니다.
- 중첩 반복문의 경우에 내부 반복문에서 break가 사용되었을 경우 그 break문이 속한 내부 반복문만 빠져나오게 됩니다.
- 중첩 반복문에서 바깥쪽 반복문까지 종료시키려면 바깥쪽 반복문에 이름(label) 을 붙이고, "break 이름;"을 사용하면 됩니다.
//무한 루프..?
* 무한반복문
* - 반복문의 횟수를 정확히 모를때 사용하고, 자바에서는 while(true)문장을 사용한다.
* - 특정 조건에서 반복문을 탈출하는 형태로 사용합니다.
*/
break는 가장 가까운 중괄호{} 를 빠져 나갑니다.
그러면 반복문, 무한루프가 존재하는 문장을 빠져 나 갈 수 있다.
결과값
int i = 0;
while (true) {
System.out.println(i);
if (i == 15)
break; // 위치에 따라..
i++;
}
위 코드는 조건문이 true이기 때문에 무한 반복 됩니다.
i 변수 선언후 while 통하여 0부터~15까지 증가하며 출력 이후 15에서 break; 로 인하여 멈춘다.
지금 위에서는 단순한 동작들이라 약간 예상되지만 복잡한 것들을 할때 break를 어느 위치에 쓰는 것에 따라 출력값들이 다르게 나온다
Break01
결과값
Scanner scan = new Scanner(System.in);
while(true) {
System.out.println("4 + 3 = ?");
System.out.print(">");
int answer = scan.nextInt();
if(answer == 7) {
System.out.println("정답입니다!");
break;
} else {
System.out.println("틀렸는데요?");
}
}
예시2
결과값
inner for문에서 l == f 일 경우 반복문을 탈출 할 수 있게 break를 썼습니다.
그런데, inner for 문만 탈출하고, outer for 문에서 다시 반복되기 때문에 결국 inner for문 안으로 다시 들어
1번째로 boolean flan = false; 도입
이렇게 boolean 변수 flag에 true를 넣어주고 outer for 반복문에서 flag가 false 인지 true인지 확인해서 outer for문을 같이 빠져나가는 방법이 있다.
2번째, 탈출할 반복문 앞에 이름을 붙이고, break 뒤에 이름을 붙여 탈출하는 방법이 있습니다.
탈출할 반복문 앞에 이름: 을 붙이고 탈출하고싶은 곳에 brea 이름; 을 사용하여 빠져나옵니다
'Java 공부' 카테고리의 다른 글
Day08 - 메서드(함수) 생성과 사용 (0) | 2021.08.24 |
---|---|
Day08 - 제어문 continue(다음작성시 이것부터 순서대로 (0) | 2021.08.23 |
Day06 - 선택정렬,버블정렬 (0) | 2021.08.23 |
Day06 - 제어문 break (0) | 2021.08.20 |
Day06 - 향상된 for 문 (0) | 2021.08.20 |