JAVA
sc. next()
체제
2022. 1. 23. 10:45
문제 : 입력받은 값에 따라, 다른 결과가 나오는 문제
1 을 입력받으면 , { ~~~ 실행 } , A 를 입력받으면 ,{ ~~~ 실행 }
if( sc.next().equals("1") ){
//1 입력시 실행 할 코드 ;
}
else if ( sc.next().equals("A") ){
//A 입력시 실행할 코드 ;
}
↑ 코드를 짯더니, 1을 입력했을 땐 if 문 안의 코드가 잘 돌아갔는데 A를 입력하면 아무런 실행이 나지 않았다.
--> 처음 A를 입력하면, sc.next() 는 A를 읽은채, if의 조건문을 실행한다.
--> A!=1 이므로, 다음 else-if의 조건구문을 확인하러 가고, sc.next()는 그 다음 입력값을 읽게된다.
--> 그다음 입력값은 없으므로 null 을 읽은채로 확인하게 되고 null!=A이므로, else-if도 실행되지 않는 것이다.
String s= sc.next() ;
if( s.next().equlas("1") ) {
// 1 입력시 실행할 코드 ;
}
else if( s.next().equals("A") ) {
// A 입력시 실행할 코드 ;
}
↑ 코드를 짯더니, 잘 실행되었다.
--> 'A' 를 입력하면, 그 값을 s라는 문자열에 저장하게 되고, s를 가지고 먼저 간다.
--> 조건문이 false 이기 때문에, s를 가지고 그대로 else-if을 확인하러 간다.
--> 출력 ~
나는 바보다 .