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

김혜진님의 프로필 이미지
김혜진

작성한 질문수

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

문제와 풀이

NextInt 후 NextLine 쓰기

작성

·

288

2

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오)

[질문 내용]

System.out.print(i+1+"번째 주문 정보 입력");
System.out.print("상품명 : ");
String productName = scanner.nextLine();

System.out.print("가격 : ");
int price = scanner.nextInt();

System.out.print("수량 : ");
int quantity = scanner.nextInt();
scanner.nextLine(); //입력 버퍼를 비우기 위한 코드

price 입력 받을 때와 quantity 입력 받을 때 둘다 int형으로 입력을 받는데 quantity 수량 받을 때는 nextLine을 해주는데,

왜 price를 받을 때는 nextLine을 안해줘도 되는것일까요?


답변 1

5

안녕하세요. 김혜진님, 공식 서포터즈 코즈위버입니다.

nextInt() 메서드는 IO 버퍼에 있는 값중 숫자 1개를 찾아서 반환합니다. 그래서 nextInt() 를 연속으로 사용할 때는 엔터키에 대한 처리가 필요하지 않습니다.

 

그러나 nextInt() 메서드 뒤에 문자열에 대한 입력을 받아야 하는 경우 nextLine()으로 IO버퍼를 비워주지 않을 경우 문자열 입력이 오작동 하게 됩니다 🙂

감사합니다.

오~감사합니다. 저 매서드를 알고는 있었지만 저렇게 활용할수 있다는것을 처음 알게 되었네요.

김혜진님의 프로필 이미지
김혜진

작성한 질문수

질문하기