inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

문제와 풀이3

nextInt 함수 질문

144

루피형에이스

작성한 질문수 5

0

문제와 풀이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();

 

java 객체지향

답변 2

1

y2gcoder

안녕하세요. 루피형에이스님, 공식 서포터즈 y2gcoder입니다.

이번 문제 풀이에서 개행문자를 처리해주는 scanner.nextLine(); 이 없는 이유는 현재 요구사항에서는 개행문자를 처리해줄 필요가 없기 때문입니다!

nextLine()으로 문자를 받아서 처리해주는 부분이 없고, nextInt()로 개행문자를 무시하고 숫자만 받아오는 콘솔 입력만 사용하기 때문에 개행문자 처리를 따로 해주지 않았다고 생각해주시면 좋을 것 같습니다 🙂

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 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()이 예상대로 사용자 입력을 가져오게 보장합니다.

유사한 문제를 겪으신 사례들에 대한 더 자세한 설명과 해결법을 아래 유사한 질문에서 찾아보실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

선생님 안녕하세요.

0

28

0

IntelliJ IDEA 체험 만료

0

115

2

reference to myMethod is ambiguous 오류

0

94

1

인텔리제이 설정 최신화 관련 확인 부탁 드립니다!

3

261

2

문제와 풀이4 문제점

0

159

2

문제풀이 시간마다 방향성

0

144

2

피라미드 문제 풀이

0

146

1

ScannerWhile3 예제 코드 질문

0

125

1

짝수 출력 문제 질문

0

115

1

Array 연습 문제 5번 질문입니다.

0

157

2

단축어가 이상하게 나옵니다

0

270

2

Sql강의

0

178

1

array 문제풀이 2번 질문입니다.

0

111

1

JAVA입문 / 메서드편 문제와 풀이2

0

120

1

인텔리제이 무료버젼이 통합되었다는데 30일 무료버전이면 어떻게 사용하나요

1

1215

3

OperationEx3에서 꼭 boolean을 써야 하나요?

0

115

1

for, while문 작성

0

123

1

68강 ArrayEx6 클래스 질문

0

117

1

IO.println(String.format("Hello and welcome!"));

0

258

2

소스코드 실행이 안돼요

0

215

2

메서드 문제와 풀이2에서 마지막 문제 이렇게 풀어도 괜찮은 건가요..?

0

113

1

While과 for 스코프 질문

0

99

1

김영한 java 입문 설치 질문

0

204

2

버퍼문제?

0

116

1