본문 바로가기

콤퓨타/Programming) 왕초보 자바

23. (Loops and Conditions) Break

Break: 

괄호 안에서 계속 반복적으로 진행되는 작업(반복문 혹은 switch)들을 멈추고, 범위 밖의 프로그램을 가동시킨다. 

 

 

public class App {
	public static void main(String[] args) {

		int count = 0;

		while (true) {
			System.out.println("안녕! " + count);

			if (count == 3) {
				break;
			}
			System.out.println("잘 지내셨냐능? " + count);
			count++;
		}

		System.out.println("프로그램을 종료합니다.");
	}
}

 

while(true)는 무한반복의 의미이지만 , 

그 아래에서 따라나온 if문에서 

count가 3번째 될 때 break 걸어달라고 말하고 있기 때문에, 3번째 안녕이 나오고 break, 그 다음 while 문 밖에 있는 '프로그램을 종료합니다.' 라는 메시지가 출력된다.

 

 

 

 

 

 

좀 단순한 개념은 이대로 끝내기 아쉬우니(???) 챗지피티에게 일반 예제 1 심화 1 달라고 함. 

 

1. 일반예제: 0부터 숫자 세다가 5가 되면 멈추기

public class Practice_01 {
	
	public static void main(String[] args) {
		
		int i = 0; 
		
		while (true) { 
			System.out.println("0부터 숫자를 셉니다: " + i);
			
			if (i==5) {
				break; 
			}
			
			System.out.println("5가 되면 멈춥니다. ");
			
			i++; 
		}
		System.out.println("숫자세기를 멈춥니다.");
		
	}

}

 

수업에 나왔던 예제와 매우 닮아있어서, 손쉽게 해결 !

 

 

 

2. 심화 예제: 중첩된 반복문에서 특정 조건 만나면 안쪽 반복문만 종료하기

public class Practice_02 {
	
	public static void main(String[] args) {
		
		for(int outer = 1; outer <= 5; outer++) {
			System.out.println("외부 반복문: " + outer);

			for(int inner = 1; inner <=3; inner++ ) {
				if(inner ==3) { 
					break; 
				}
			System.out.println("내부 반복문: " + inner);
			}

			System.out.println("내부 반복문 종료 후 외부 반복문 계속");
			
		}
		System.out.println("모든 반복문 종료! ");
		
	}

}

 

이건 챗지피티가 써준거 그냥 그대로 따라했다. 

결과는 다음과 같다. 

 

 

무지성으로 따라하기 + 조금 복잡해지기 = 이해 불가, 뇌에 힘 안주게 됨

흠. 일단 올려는 두고 보자고. 

(이해 안되는 부분 내부 반복문이 왜 각 턴마다 두번씩 나오는지)

 

 

👉 씨름 후 추가 

(outer (inner))  이런 구조로 되어있어서 
outer 1 inner 123
outer 2 inner 123
outer 3 inner 123
outer 4 inner 123
outer 5 inner 123


이렇게 나오는걸로. 
"내부 반복문 종료 후 외부 반복문 계속"은 outer-> inner-> break 다음에 계속 붙고. 
마지막에 끝. 

내가 헷갈린 이유 
(outer) (inner) 이 구조인줄 알았음 

 

 

 

그래서 지루함을 덜기위해 워딩만 바꿔서 복습. 

public class Practice_03 {

	public static void main(String[] args) {

		for (int bigger = 1; bigger <= 5; bigger++) {
			System.out.println("큰 반복스: " + bigger);

			for (int smaller = 1; smaller <= 3; smaller++) {
				System.out.println("작은 밴복스: " + smaller);

				if (smaller == 3) {
					break;
				}
			}
			System.out.println("반복되쥬? 킹받쥬? 언제 끝날지 모르겠쥬?");
		}
		System.out.println("끗! 수고하셨습니다!");

	}
}

 

이해완

 

 

 

 

 

+ 번외

 

만약 

(outer) (inner) 이 구조라면 코드와 결과는 아래와 같다.

 

public class Practice_03 {

	public static void main(String[] args) {

		for (int outer = 1; outer <= 5; outer++) {
			System.out.println("외부 반복문: " + outer);

		}
		for (int inner = 1; inner <= 3; inner++) {
			System.out.println("inner 밴복맨: " + inner);

			if (inner == 3) {
				break;
			}
		}
		System.out.println("끗!");
	}
}

 

 

 

 

해피코딩