작성
·
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버퍼를 비워주지 않을 경우 문자열 입력이 오작동 하게 됩니다 🙂
감사합니다.
오~감사합니다. 저 매서드를 알고는 있었지만 저렇게 활용할수 있다는것을 처음 알게 되었네요.