import java.util.Arrays;
import java.util.Scanner;

public class sample2 {
    public static void main(String[] args) {
        /*
            break : 루프 탈출
                    단독으로 사용하지 못하고, 반드시 루프문과 같이 사용해야 함.

            continue :  생략 (Skip)
                        단독으로 사용하지 못하고, 반드시 루프문과 같이 사용해야 함.
                        loop문 안에 처리를 생략

            예시 ----
            for (int i=0; i<10; i++) {
                처리1
                처리2
                if (i == 6) {
                    continue;
                }
                처리3 // continue가 실행되면 처리3은 생략됨.
            }
         */

        // break;

        for (int i=0; i< 100; i++) {
            System.out.println(" i= " + i);
            if (i == 33) {
                System.out.println("탈출!");
                break;
            }
        }

        char[] array = { 'A', 'B', 'C', 'D', 'E'};

        for (int i=0; i<array.length; i++) {
            System.out.println(array[i]);
            if (array[i] == 'D') {
                System.out.println("탈출!");
                break;
            }
        }

        int arrNumber[] = { 3, 6, 8, -2, 9, 1 };
        for (int i=0; i<arrNumber.length; i++) {
            if (arrNumber[i] < 0) {
                break;
            } else {
                System.out.println(arrNumber[i]);
            }
        }
        // for each를 사용하는 경우
        for (int num: arrNumber) {
            if (num < 0) break;
            System.out.println(num);
        }

        // 2중 for문 탈출
        for (int i=0; i<5; i++) {
            System.out.println("i = " + i);
            for (int j=0; j<3; j++) {
                System.out.println("\tj = "+ j);
                if (i == 3 && j == 1) {
                    break;  // break 하나 당 루프 한 개만 중단시킬 수 있다!!.
                }
            }
        }

        // 1. 같은 조건을 두 번 작성
        for (int i=0; i<3; i++) {
            System.out.println("i = " + i);
            for (int j=0; j<3; j++) {
                System.out.println("\tj = "+ j);
                if (i == 3 && j == 1) {
                    break;  // break 하나 당 루프 한 개만 중단시킬 수 있다!!.
                }
            }
        }

        // 2. break 구문에 탈출 루프를 지정 (권장! 'out'은 그냥 아무 단어로 대체 가능!)
        out: for (int i=0; i<5; i++) {
            System.out.println("i = " + i);
            for (int j=0; j<3; j++) {
                System.out.println("\tj = " + j);
                if (i== 3 && j == 1) {
                    break out;
                }
            }
        }

        // continue문
        for (int i=0; i< 10; i++) {
            System.out.println("start i = " + i);

            if (i == 6) {
                continue;
            }
            // if 조건문에 맞으면 아래줄은 실행되지 않음
            System.out.println("\tend i =" + i);
        }

        // 숫자를 5개 받는다. 입력 받는 숫자는 모두 양수 조건.
        // 만약 음수를 입력했으면 다시 입력하라는 메시지 함께 다시 입력 받기
        // 배열에 입력받도록 한다

        System.out.println("========입력 프로그램========");
        Scanner sc = new Scanner(System.in);
        int[] nums = new int[5];
        int cnt = 0;
        while (cnt < 5) {
            System.out.printf("%d번째 수 입력 ---> ", cnt+1);
            int temp = sc.nextInt();
            if (temp < 0) {
                System.out.println("음수를 입력하셨습니다. 다시 입력해주세요");
                continue;
            }
            nums[cnt] = temp;
//            System.out.println("\t 입력한 숫자: "+ nums[cnt]);
            cnt++;
        }

        System.out.println(Arrays.toString(nums));
    }
}

+ Recent posts