rizzle4sg   3년 전

입력

5

oxoxoxoxoxo

xoxoxoxo

xoxoxoxo

xoxoxo//를 입력하면

출력 : 

oxoxoxoxoxo
xoxoxoxo
xoxoxoxo
xoxoxo// 여기까지 출력 됩니다.

여기서 궁금한점은 스트링배열 사이즈를 num으로 지정했으니까 위처럼 5를 입력한다면 index 0~4까지 입력을 할 수 있어야 한다고 생각하는데

첫 번째 for문에서 입력을 5번이 아닌 4번을 하면 for문이 끝나버립니다.


왜 처음 입력한 num값이 스트링배열의 인덱스 0번째 값에 자동으로 들어가는 것인지 궁금합니다.

sc.nextInt()는 개행을 포함하지 않습니다.

그런데 처음 입력에서 숫자 5를 입력하고 개행을 해야하는데, 

이 개행이 nextInt()에서 처리되는 것이 아니라 첫번째 for문에 있는 sc.nextLine()에서 개행 입력을 처리해버립니다.

그리고 다음 입력이 들어가지기 때문에 반복 1번을 잃어버리는 것입니다.

int num = sc.nextInt();

sc.nextLine();

으로 빈 nextLine()을 추가해줌으로써 정수 num 입력시 발생하는 개행을 처리할 수 있습니다.

댓글을 작성하려면 로그인해야 합니다.