switch를 이용하여 간단한 계산기를 만드는 도중 오류가 발생하였다 오류가 발생한 코드는 다음과 같았다.
코드로만 봤을때는 에러도 없고 문제가 없어보인다. 하지만 실제로 콘솔로 입력을 받아보면
다음과 같은 java.util.InputMismatchException 오류를 확인할수있다.
InputMismatchException에러가 발생한 이유는 int secondNum에 문자열의 값이 들어가서 발생하는 Exception이다.
분명 "+" 를 입력했는데 secondNum에 들어가는 이유는 무엇일까??
이러한 Exception이 발생한 이유는 next()와 nextLine()의 차이로부터 발생한다.
- next() 예제
위의 코드를 보면 scan.next()를 통해 abc abc abc 를 입력하였는데 abc만 출력된 것을 확인할 수 있다.
next() : 문자 또는 문자열을 공백을 기준으로 한단어 도는 한문자만 가져온다.
- nextLine() 예제
위의 코드를 보면 scan.nextLine()를 통해 abc abc abc를 입력할때 정상적으로 abc abc abc의 값을 출력한 것을 확인할 수 있다.
nextLine() : 공백, 엔터값 상관없이 한줄을 그대로 가져온다 ..
next()와 nextLine()의 차이를 알아두면 좋을것같아서 글을 작성해보았습니다.
반응형
'Java' 카테고리의 다른 글
Java 2중 for문 예제(2) (0) | 2017.07.01 |
---|---|
Java 2중 for문 예제(1) (0) | 2017.07.01 |
Java Switch ~ case 기본 및 사용예제 (0) | 2017.06.30 |
Eclipse에서 사용하기 좋은 단축키 (0) | 2017.06.30 |
Java 조건문과 Scanner를 활용한 간단한 비만측정 예제 (0) | 2017.06.30 |
댓글