본문 바로가기

Web/Java

[Java] 값을 입력 받았을 때, 조건문을 건너 뛰는 경우

반응형

Scanner 를 이용해서 값을 입력 받고, 조건문으로 값을 검사하고 해당하는 조건에 맞게 출력해야 하는 상황이었는데, if문에서 걸러져야 하는데 안걸러지고, 바로 else 문으로 가는 문제가 발생했다.

 

아래 화면처럼 다시 하시겠습니까 라고 물어봤을 때 사용자가 y를 입력하면 루프를 나가야하는데, 루프가 나가지지 않고, else 문으로 가서 다시 y를 입력해야지 if 문이 맞게 적용되었다.

 

 

 

 

해결책은 생각보다 간단했는데, nextLine( ) 을 next( ) 로 바꾸어주니 해결이 됐다. 혹은 해보진 않았지만 따로 변수를 생성해서 입력값을 변수에 저장한 다음에 그 변수를 비교해도 될 것 같다. 

 

이유는 nextLine( ) 안에는 엔터값이 저장되어있어서 우선 한 번 엔터값이 들어가기 때문에 바로 else로 가게 되는 것 때문이었다. 다른 해결책이 있는 것 같은데 이건 아직 배우지 않았기 때문에 배우게 되면 다루기로 하겠다.

 

 

 

https://devlog-wjdrbs96.tistory.com/80

 

[JAVA] next(), nextLine() 의 차이

나는 지금까지 next()와 nextLine()의 차이는 단순히 한 줄을 전부 입력받고 싶을 때(한 문장을 입력한다던지)는 nextLine()을 사용하고 한 단어씩 입력하고자 할 때는 next()를 사용한다 정도의 가볍게

devlog-wjdrbs96.tistory.com

 

반응형