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을 확인하러 간다.

--> 출력 ~

 

 

 

 

 

 

나는 바보다 .