nextInt 함수 질문
122
작성한 질문수 5
문제와 풀이3-상품 가격 계산
위 문제 질문드립니다.
가격과 수량을 입력받을때, 사용자 입력이 "정수+개행문자"까지 들어가니까
앞선 문제에서 알려주셨다시피
nextInt함수는
정수값만 입력으로 가져가기 때문에
사용자입력에서 개행문자가 남아 빈문자가 다음 입력값으로 넘어가는 것을 방지하기 위해
아래 캡쳐와 같이 scanner.nextLine(); 코드를 넣어주어
개행문자를 없애줘야 하지 않나요?
답변 부탁드립니다.
System.out.print("가격은?(-1입력 시 종료): ");
int price = scanner.nextInt();
scanner.nextLine();
if(price==-1){
System.out.println("시스템 종료");
break;
}
System.out.print("수량은?: ");
int num = scanner.nextInt();
scanner.nextLine();
답변 2
1
안녕하세요. 루피형에이스님, 공식 서포터즈 y2gcoder입니다.
이번 문제 풀이에서 개행문자를 처리해주는 scanner.nextLine(); 이 없는 이유는 현재 요구사항에서는 개행문자를 처리해줄 필요가 없기 때문입니다!
nextLine()으로 문자를 받아서 처리해주는 부분이 없고, nextInt()로 개행문자를 무시하고 숫자만 받아오는 콘솔 입력만 사용하기 때문에 개행문자 처리를 따로 해주지 않았다고 생각해주시면 좋을 것 같습니다 🙂
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
루피형에이스님께서 질문하신 대로 nextInt() 메서드는 사용자가 입력한 정수만 가져가며, 개행 문자(엔터)를 입력 버퍼에 남겨두는 특성이 있습니다. 이로 인해 nextInt() 후 nextLine() 메서드를 사용하여 입력 버퍼를 비우지 않을 경우, 다음 nextLine() 호출 시 남아 있는 개행문자를 읽기 때문에 의도한 대로 작동하지 않을 수 있습니다.
사용 예시에서는 가격과 수량을 입력 받은 후 scanner.nextLine();을 호출하여 입력 버퍼를 비워주는 것이 적절합니다. 이로 인해 버퍼에 남아 있는 개행 문자(엔터)가 다음 입력으로 들어가서 발생할 수 있는 문제를 방지할 수 있습니다.
문제 상황을 방지하고자 코드에 scanner.nextLine();을 추가한 것은 정확한 접근법입니다. 아래 코드는 이를 반영한 예시 코드입니다:
System.out.print("가격은?(-1입력 시 종료): ");
int price = scanner.nextInt();
scanner.nextLine(); // 개행문자 제거
if(price == -1){
System.out.println("시스템 종료");
break;
}
System.out.print("수량은?: ");
int num = scanner.nextInt();
scanner.nextLine(); // 개행문자 제거
해당 설정이 올바르게 적용되었으며, 사용자의 예상 입력 처리를 방해하지 않도록 구성된 코드는 다음 nextLine()이 예상대로 사용자 입력을 가져오게 보장합니다.
유사한 문제를 겪으신 사례들에 대한 더 자세한 설명과 해결법을 아래 유사한 질문에서 찾아보실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
문제와 풀이4 문제점
0
40
2
문제풀이 시간마다 방향성
0
39
2
피라미드 문제 풀이
0
71
1
ScannerWhile3 예제 코드 질문
0
54
1
짝수 출력 문제 질문
0
50
1
Array 연습 문제 5번 질문입니다.
0
84
2
단축어가 이상하게 나옵니다
0
128
2
Sql강의
0
90
1
array 문제풀이 2번 질문입니다.
0
55
1
JAVA입문 / 메서드편 문제와 풀이2
0
47
1
인텔리제이 무료버젼이 통합되었다는데 30일 무료버전이면 어떻게 사용하나요
1
799
3
OperationEx3에서 꼭 boolean을 써야 하나요?
0
59
1
for, while문 작성
0
65
1
68강 ArrayEx6 클래스 질문
0
59
1
IO.println(String.format("Hello and welcome!"));
0
146
2
소스코드 실행이 안돼요
0
119
2
메서드 문제와 풀이2에서 마지막 문제 이렇게 풀어도 괜찮은 건가요..?
0
79
1
While과 for 스코프 질문
0
62
1
김영한 java 입문 설치 질문
0
137
2
버퍼문제?
0
54
1
for문 피라미드 찍는거 질문
0
78
1
21버전이 없고, 강의 메뉴얼 확인해보면 된다는 김영한 선생님 답변 확인했습니다.
0
372
1
3번 문제 질문 있습니다.
0
99
2
sout에는 변수가 하나만 들어가야 하나요?
0
134
1





