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

bsm77125님의 프로필 이미지
bsm77125

작성한 질문수

김영한의 실전 자바 - 기본편

[섹션2 문제풀이] scanner 질문

작성

·

124

1

스크린샷 2024-01-12 172546.png위에서 int price = scanner.nextInt(); 밑에는 scanner.nextLine();를 안 쓰는 이유가 궁금합니다.

버퍼에 개행문자(엔터)가 int quantity 변수 맨 앞으로 입력되지 않나요??

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. bsm77125님

nextInt()의 경우 개행문자가 있어도 해당 부분을 무시하고 숫자를 읽을 수 있습니다.

그래서 nextInt()만 계속 사용하는 경우에는 아무런 문제가 없습니다.

그런데 문자를 읽기 위한 nextLine()의 경우 개행문자가 남아있으면 문제가 됩니다.

이 코드의 경우 수량을 입력받은 다음에 아마도 nextLine()을 통해서 상품명 문자를 입력받는 부분이 있습니다.

이때 개행문자가 남아서 문제가 되기 때문에 마지막 nextInt() 이후에 nextLine()를 사용해서 입력 버퍼를 비웁니다.

감사합니다.

bsm77125님의 프로필 이미지
bsm77125

작성한 질문수

질문하기