Java 공부(Continue/break)

hoin_lee·2022년 6월 16일
0

Java

목록 보기
13/18

Coutinue와 break

int n = 0;

        Scanner scan = new Scanner(System.in);
        System.out.print("값을 sp로 구분해서 5개 이상 입력하세요: ");
        n = scan.nextInt();
        // n = scan.nextInt();
        // n = scan.nextInt();
        // n = scan.nextInt();
        // n = scan.nextInt();
        System.out.println(n);

scan.nextInt();를 사용할 때 34 5 6 234 345 54 45 Enter를 입력하게되면
스페이스를 구분자로 맨 앞에 34만 읽어오게 된다.
이 때 위 코드의 주석과 같이 그 아래로 scan.nextInt();를 연속으로 써 넣게 되면
n의 값은 어떻게 들어갈까?
첫 nextInt();때는 콘솔창에 프롬프트가 뜨지만 이럴 경우 아래있는 남은 nextInt();에선 프롬프트 입력을 받지않고 자동으로 뒤의 값들이 입력된다.(Enter를 만날 때까지!!)
답은 앞서 치게된 34 5 6 234 345 54 45 Enter 중 맨 앞의 34는 첫번재 nextInt();에서 입력 되었으니 스페이스바를 기준으로 차례대로 맨 왼쪽 5, 6, 234, 345 순으로 입력 되고 마지막 System.out.println(n)에선 345가 출력이 된다.
고로 반복문이 사용 될 수 있다.

int n = 0;

        Scanner scan = new Scanner(System.in);
        System.out.print("값을 sp로 구분해서 5개 이상 입력하세요: ");

        while(scan.hasNext()) {
            n = scan.nextInt();

            if(n < 10)
                continue;

            if(n > 300)
                break;

            System.out.println(n);
        }

위 코드에서 scan.hasNext();라고 있는데 반환값이 boolean형이다.
입력된 값들의 끝(Enter)부분을 알 수 있는 방법으로 다음 값이 있는지 없는지 미리 보고 true/false값을 준다.
그래서 while(scan.hasNext())는 첫 값을 입력받고 다음 값이 있을경우 반복을 실행하게 되는 것이다.

continue와 break는 입력된 값(n)이 10보다 작을경우 출력되지 않고 continue되어 그냥 넘어가게 되고 300보다 큰 수가 나오면 반복문이 종료된다.
EX) 34 26 5 6 620 54 320 을 입력하게 되면
34, 26은 조건에 걸리는 게 없기 때문에 그대로 출력되고 5, 6은 10보다 작아 continue되며 620부분에서 300보다 크기에 반복문이 종료되어
34
26
만 출력되게 된다.

profile
https://mo-i-programmers.tistory.com/

0개의 댓글