인프런 커뮤니티 질문&답변

콩콩이님의 프로필 이미지
콩콩이

작성한 질문수

continue문에 대해 제가 잘못이해하고 있는걸까요?

작성

·

255

0

   public static void main(String[] args) {
        int max = 5;
        String[] movement = new String[]{"R", "R", "R", "U", "D", "D"};
        int x = 1;
        int y = 1;

        for (int i = 0; i < movement.length; i++) {

            if (movement[i] == "L") {
                y--;
            }
            if (movement[i] == "R") {
                y++;
            }
            if (movement[i] == "U") {
                x--;
            }
            if (movement[i] == "D") {
                x++;
            }

            if (x > max || y > max || x < 1 || y < 1) {
                continue;
            }


            System.out.println(x + "," + y);
        }




       // System.out.println(x + "," + y);
    }

이렇게 메인함수를 작성했습니다.

제 생각에는 세 번의 R 이동 후 ( 1,2 -> 1,3 -> 1,4) U에서 조건 범위를 벗어나 1,4 상태로 D로 이동.

D 루프의 결과 2,4

마지막 D루프의 결과 3,4

 

이렇게 출력되어야 할 것 같은데

 

1,2

1,3

1,4

1,4

2,4

이렇게 출력이 됩니다.

GPT를 검색하니

5번만 출력이 되는 이유는 continue문에서 1,4 를 출력하지 않아서

1,2 -> 1,3 -> 1,4 -> 1,4(continue) -> 1,4 -> 2, 4 이렇게 출력이 되었다고 하는데

이게 맞다면

continue 문을 돌고난 이후 첫번째 D루프에서 x의 값이 증가하지 않는 이유가 궁금합니다.

답변 2

0

콩콩이님의 프로필 이미지
콩콩이
질문자

네 맞아요. 그런데 i 가 4일때랑 5일때가 각각2,4 -> 3,4 가 되어서 마지막에 3,4까지 출력이 되는게 맞지않을까 싶은데 마지막이 지피티 대답에서는 i가 4일때랑 5일따가 각각 1, 4 2,4가 되는듯해서 질문남겼습니다!!

0

i가 3일때는 출력이 안되는게 아닌가요? 올바른 출력이 맞아보이는데..
x를 감소시켰으니까요!

콩콩이님의 프로필 이미지
콩콩이

작성한 질문수

질문하기