• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

ScannerWhileEx4

24.03.13 04:19 작성 조회수 81

0

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

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2024.03.13

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

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

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

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


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

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

감사합니다.