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

최승호님의 프로필 이미지
최승호

작성한 질문수

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

문제와 풀이4

ScannerWhileEx4

작성

·

166

0

스크린샷 2024-03-13 041753.png위의 이미지처럼 스캐너 넥스트 라인을 상품명 다음에 했을때 출력값에 상품명이 뜨지 않습니다. if다음에 바로 스캐너.넥스트라인을 두는것과 왜 이런 차이가 생기는건가요? 이해가 잘 되지않습니다

답변 1

0

안녕하세요. 최승호님, 공식 서포터즈 y2gcoder입니다.

Scanner.nextInt() 후에 남은 개행문자(\n) 를 입력 버퍼에서 비워주기 위해 Scanner.nextLine()을 해준다는 것은 알고 계실 것이라 생각합니다!

말씀하신 것처럼 캡처 코드와 다른 점은 Scanner.nextLine(); 의 순서입니다.

이를 잘 생각해보면 원인을 알 수 있습니다!


캡처 코드에서는 name에 개행문자가 들어가기 때문입니다!
메뉴 선택 후 입력 버퍼에는 개행문자가 들어가 있는 상태고,

String name = Scanner.nextLine(); 에서 개행문자를 받고
그다음 Scanner.nextLine();에서 "스프링"을 입력받지만 이를 저장한 변수가 없습니다.
그래서 name 에는 아무 값도 들어가지 않은 것으로 출력되는 것으로 보입니다.

감사합니다.

최승호님의 프로필 이미지
최승호

작성한 질문수

질문하기