간단한 계산기 만드는 과제 진행 중 다음과 같은 에러를 만났다.

사칙연산 기호를 입력해야하는데, 입력하기 전에 번째 숫자를 입력하라는게 바로 나온것임 ㅠㅠ
// num1, num2, 사칙연산 입력받기
System.out.print("첫번째 숫자를 입력하세요: ");
num1 = sc.nextInt();
System.out.print("사칙연산 기호를 입력하세요(+, -, *, /): ");
String cal = sc.nextLine();
System.out.print("두번째 숫자를 입력하세요: ");
num2 = sc.nextInt();
이게 당시 내 코드였는데..처음에는 뭐가 잘못됐는지 몰랐다 ㅠㅠ
알고보니 nextInt()에 숫자 입력 후 뒤에 엔터는
\n 개행문자로 인식해 그 다음줄에 나오는 nextLine()에 \n가 입력되어버린것이다.
그래서 바로 다음 문장이 연속해서 나온것이었음.
// num1, num2, 사칙연산 입력받기
System.out.print("첫번째 숫자를 입력하세요: ");
num1 = sc.nextInt();
sc.nextLine(); // 엔터입력 방지
System.out.print("사칙연산 기호를 입력하세요(+, -, *, /): ");
String cal = sc.nextLine();
System.out.print("두번째 숫자를 입력하세요: ");
num2 = sc.nextInt();
nextInt() 바로 아래 줄에 nextLine()을 추가해줌으로써 \n 입력을 받아냄으로 해결!
근데 처음에 멍청하게 두번재 숫자 입력하는 곳에도 nextLine() 써줘야 하는데 깜빡하고 안 넣음..

ㅋㅋㅋㅋ그래서 계산뒤에도 이렇게 나오는데, 처음에는 내가 안넣은줄 모르고..
반복문 코드 넣을 때 순서가 내가 이상하게 한건가..? 하면서 삽질함..
그래서 덕분에 이제는 상황에 따라 다를 순 있겠지만
nextInt() 다음에는 nextLine() 잊지 않을듯!!
참고로 아예 nextInt()를 안쓰고
int num = Integer.parseInt(sc.nextLine());
nextLine()만 쓰는 이런 방법도 있다고 한다.
![]()
'트러블슈팅' 카테고리의 다른 글
| Session 로그인 적용하면서 API 구조 리팩토링하기 (0) | 2026.07.09 |
|---|---|
| [IntelliJ IDEA 기능] Compact Middle Packages / 패키지 설정 (0) | 2026.07.07 |
| [Spring] 전체조회시, 조건 전체조회 (feat.@RequestParam) (0) | 2026.06.30 |
| ArrayList 기반 장바구니 구현 (0) | 2026.06.16 |
| 💻 Git 브랜치 작업하면서 겪은 트러블슈팅 정리 (0) | 2026.06.01 |