-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
ScannerWhileEx4
24.03.13 04:19 작성 조회수 81
0
위의 이미지처럼 스캐너 넥스트 라인을 상품명 다음에 했을때 출력값에 상품명이 뜨지 않습니다. if다음에 바로 스캐너.넥스트라인을 두는것과 왜 이런 차이가 생기는건가요? 이해가 잘 되지않습니다
답변을 작성해보세요.
0
y2gcoder
2024.03.13
안녕하세요. 최승호님, 공식 서포터즈 y2gcoder입니다.
Scanner.nextInt() 후에 남은 개행문자(\n) 를 입력 버퍼에서 비워주기 위해 Scanner.nextLine()을 해준다는 것은 알고 계실 것이라 생각합니다!
말씀하신 것처럼 캡처 코드와 다른 점은 Scanner.nextLine(); 의 순서입니다.
이를 잘 생각해보면 원인을 알 수 있습니다!
캡처 코드에서는 name에 개행문자가 들어가기 때문입니다!
메뉴 선택 후 입력 버퍼에는 개행문자가 들어가 있는 상태고,
String name = Scanner.nextLine(); 에서 개행문자를 받고
그다음 Scanner.nextLine();에서 "스프링"을 입력받지만 이를 저장한 변수가 없습니다.
그래서 name 에는 아무 값도 들어가지 않은 것으로 출력되는 것으로 보입니다.
감사합니다.
답변 1