[JAVA]입력 버퍼비우기 - (Next() , NextLine())

2025. 3. 5. 14:03·프로젝트/트러블슈팅

intro

  • 프로젝트를 진행하며 발생한 문제 상황과 해결 과정들을 상세히 기록하고 추후에 같은 문제가 발생 했을때 빠르게 문제 해결하기 위해 트러블 슈팅을 정리할려고 한다.
  • 기록하는 습관을 기르기 위해 프로젝트 기간동안 꾸준히 작성할 것 이다.

간단한 계산기 만드는 과정에서 Scanner 함수를 이용해 문자를 입력받는 기능이 있다.두 개의 숫자를 입력받고 사칙연산자를 입력받지만 NextInt() 로 숫자를 입력 받은후 사칙연산을 받지 못하는 오류가 발생하였다!.

 

문자를 입력받는 Next() 에서 오류가 발생한듯 한데 필수적으로 쓰이는 메소드인 만큼 확실하게 이해하기 위해 트러블 슈팅으로 작성해볼려고 한다.

 

 ⚠️ 1.문제 상황 발생

숫자와 사칙연산자를 입력하고 값을 출력했지만 계속하기와 종료를 입력하는 nextLine() 부분이 그냥 넘어가버렸다.

 

 

 

 

 🔎 2.원인 추론

 

 

사칙연산자를 입력하기 위해 예를 들면 '+' + 'Enter' 키를 누르게 되는데 Enter 키가 nextLine() 으로 입력되어 넘어가는게 아닐까 추론했다.

 

2-1.next(),nextInt() 메소드 특성 이해하기

Scanner sc = new Scanner(System.in);
int num = 0;

System.out.println("숫자를 입력하세요");
 num = sc.nextInt();

System.out.println(num);

 

해당 코드에 만약 5 4를 띄워서 입력했다면 / (공백) 을 기준으로 앞쪽인 5만 인식하게 되고 뒤에 4는 버퍼에 남게 된다.

 

2-2 nextLine() 메소드 특성 이해하기

Scanner sc = new Scanner(System.in);
String korean = "";

System.out.println("한글을 입력하세요");
korean =sc.nextLine();

System.out.println(korean);

 

해당 코드에 만약 "한글을 입력했습니다"를 입력했다면  /(공백)을 포함하여 모든 문자를 입력받게 된다.

 

 

 

📝  3.해결방안

사칙 연산 입력후 엔터를 누르면 엔터가 버퍼에 남기 때문에 버퍼를 비워줬다.

NextLine() 은 공백을 포함한 문자를 입력받고 버퍼를 비워주는 기능을 하기 때문에 NextInt() 밑에 입력해주었다.

 

 

📌4.결과 확인

버퍼를 비워주니 사칙연산자 입력코드 아래있는 nextLine() 코드가 잘 작동하였다!

 

 

'프로젝트 > 트러블슈팅' 카테고리의 다른 글

[Spring]무한 스크롤 + Enum 정렬 트러블슈팅  (2) 2025.04.23
[Spring/Security] 403 Forbidden? 권한 문제가 아니라 CSRF 이 원인이였다  (0) 2025.04.21
[Spring]Filter 예외처리  (0) 2025.04.03
[JAVA]Enum 에 선언된 메소드 호출오류  (0) 2025.03.13
[JAVA]리스트 초기화 오류  (1) 2025.03.05
'프로젝트/트러블슈팅' 카테고리의 다른 글
  • [Spring/Security] 403 Forbidden? 권한 문제가 아니라 CSRF 이 원인이였다
  • [Spring]Filter 예외처리
  • [JAVA]Enum 에 선언된 메소드 호출오류
  • [JAVA]리스트 초기화 오류
코딩로봇
코딩로봇
금융 IT 개발자
  • 코딩로봇
    쟈니의 일지
    코딩로봇
  • 전체
    오늘
    어제
    • 분류 전체보기 (137) N
      • JavaScript (8)
      • SQL (10)
      • 코딩테스트 (30) N
        • Java (15)
        • SQL (13) N
      • Java (10)
      • 프로젝트 (22) N
        • 트러블슈팅 (7)
        • 프로젝트 회고 (13) N
      • git,Github (2)
      • TIL (36) N
      • Spring (17)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스파르타 코딩 #부트캠프 #첫ot
    java #arraylist #list #배열
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩로봇
[JAVA]입력 버퍼비우기 - (Next() , NextLine())
상단으로

티스토리툴바