ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ch4 자바 반복문] break문 & continue문 & 이름 붙은 반복문
    프로그래밍 언어/JAVA 2022. 6. 8. 16:36
    break문

    switch문에서 break문을 사용했기에 break의 사용법을 알고 있겠다. 반복문에서도 break문을 사용할 수 있는데, switch문에서 그랬던 것처럼, break문은 자신이 포함된 가장 가까운 반복문을 벗어난다. 주로 if문과 함께 사용되어 특정 조건을 만족할 때 반복문을 벗어나게 한다.

     

    ※ 예제 1번 ※

    package ch4;
    
    public class Ex4_16 {
    
    	public static void main(String[] args) {
    		int sum=0, i=0;
    		
    		while(true) {
    			if(sum>100)
    				break;
    			++i;
    			sum+=i;
    		}
    		
    		System.out.println("i = " + i);
    		System.out.println("sum = " + sum);
    
    	}
    
    }

    예제 1번 출력 값

    숫자를 1부터 더해서 몇까지 더하면 100이 넘는지 알아내는 예제이다. if문의 조건대로 sum이 100을 초과하면 그대로 반복문을 벗어나게 된다. 이처럼 무한 반복문에는 조건문과 break문이 항상 같이 사용된다. 그렇지 안으면 무한히 반복되기 때문에 프로그램이 종료되지 않는다.

     

     

    continue문

    continue문은 반복문 내에서만 사용될 수 있으며, 반복이 진행되는 도중에 continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다. for문의 경우 증감식으로 이동하며, while문과 do-while문의 경우 조건식으로 이동한다.

    continue문은 반복문 전체를 벗어나지 않고 다음 반복을 계속 수행한다는 점이 break문과 다르다. 주로 if문과 함께 사용되어 특정 조건을 만족하는 경우에 continue문 이후의 문장들을 수행하지 않고 다음 반복으로 넘어가서 계속 진행하도록 한다. 

     

    ※ 예제 2번 ※

    package ch4;
    
    public class Ex4_16 {
    
    	public static void main(String[] args) {
    		
    		for(int i=0; i<=10; i++) {
    			if(i%3==0)
    				continue;
    			System.out.println(i);
    		}
    	}
    }

    예제 2번 출력 값

    1과 1사이의 숫자를 출력하되 3의 배수는 제외하도록 하였다. i의 값이 3의 배수인 경우, if문의 조건식 'i%3==0'은 참이 되어 continue문에 의해 반복문의 블럭 끝'}'으로 이동된다.

     

     

    ※ 예제 3번 ※

    package ch4;
    
    import java.util.Scanner;
    
    public class Ex4_16 {
    
    	public static void main(String[] args) {
    		
    		int menu=0, num=0;
    		Scanner sc = new Scanner(System.in);
    		while(true) {
    			System.out.println("(1) red");
    			System.out.println("(2) blue");
    			System.out.println("(3) green");
    			System.out.print("원하시는 색상의 번호를 입력하세요.(종료0번) > ");
    			
    			num = sc.nextInt();
    			switch(num) {
    			case 1:
    				System.out.println("선택하신 색은 red 입니다.");
    				continue;
    			case 2:
    				System.out.println("선택하신 색은 blue 입니다.");
    				continue;
    			case 3:
    				System.out.println("선택하신 색은 green 입니다.");
    				continue;
    			case 0:
    				System.out.println("프로그램을 종료합니다.");
    				break;
    			default:
    				System.out.println("없는 번호입니다.(종료는 0번)");
    				continue;
    			}
    			break;
    		}
    	}
    }

    예제 3번 출력 값

    색상 번호를 보여주고 선택하게 하는 예제이다. 0번이 아닌 번호 선택시 해당 case문 값과 일치하는 문장을 출력 후 continue문으로 다시 번호를 보여주고 종료(0)을 입력한 경우 break문으로 switch문을 빠져나온 다음에 while문 또한 빠져나와 무한루프를 종료하도록 만들었다.

     

     

     

    이름 붙은 반복문

    break문은 근접한 단 하나의 반복문만 벗어날 수 있기 때문에, 여러 개의 반복문이 중첩된 경우에는 break문으로 중첩 반복문을 벗어날 수 없다. 이때는 중첩 반복문 앞에 이름을 붙이고 break문과 continue문에 이름을 지정해 줌으로써 하나 이상의 반복문을 벗어나거나 반복을 건너뛸 수 있다. 

     

    ※ 예제 4번 

    package ch4;
    
    public class Ex4_19 {
    
    	public static void main(String[] args) {
    		
    		Loop1: for(int i=2; i<=9; i++) {
    			for(int j=1; j<=9;j++) {
    				if(j==5)
    					break Loop1;
    				System.out.println(i+" * "+j+" = " + i*j);
    			}
    			System.out.println();
    		}
    	}
    
    }

    예제 4번 break Loop1; 출력 값

    구구단을 출력하는 예제이다. 제일 바깥에 있는 for문에 Loop1이라는 이름을 붙였다. 만약 if(j==5)가 됐을 때 break문을 수행하도록 했다. 반복문의 이름이 지정되지 않는 break문은 자신이 속한 하나의 반복문만 벗어날 수 있지만 지금처럼 이름이 붙은 반복문을 하나 이상의 반복문도 벗어날 수 있다. 

     

    만약 break Loop1;을 하지 않고 break만 했을 경우 아래와 같이 2단부터 9단까지 4줄씩 출력될것이다.

    예제 4번 break; 출력 값

     

     

    반응형

    댓글

Designed by Tistory.