Scanner 클래스 버퍼문제

SJW·2025년 7월 21일


이런식으로 출력이 겹치는 문제가 발생했습니다.
nextLine()은 입력된 문자열 전체를 한 줄 단위로 읽으며, 마지막에 입력된 \n (엔터)까지 포함해서 읽고 제거합니다. 하지만 nextInt() / nextDouble() 등
숫자만 읽고, 엔터(\n)는 읽지 않고 남겨두게 됩니다.
nextInt()는 숫자만 읽고 \n을 안 없앰 → 이후 nextLine()이 그 \n을 읽음 → 사용자 입력 없이 바로 넘어감 즉, 위의 예시에서 두번째 name에 ""이런 빈 문자열이 들어가게 됩니다.
해결책은 nextInt() 후 scanner.nextLine();으로 버퍼 정리를 하면 됩니다.


문제가 생겨서 수정

0개의 댓글