본문 바로가기

【問題 2】三項演算子

【問題 2】

1: public class Test{
2:	 public static void main(String[] args){
3: 		if(args[0].equals("Hello") ? false : true) {
4: 			System.out.println("Success");
5: 		} else{
6: 			System.out.println("Failure");
7: 		}
8: 	}
9: }

javac Test.java 
java Test Hello

 

上記のコマンドを実行すると、実行結果はどのようになりますか?

 

A. Success

B. Failure

C. コンパイルエラーになる。

D. 実行時に例外が発生する。

 

 

 

 

 

 

 

 

正解:B

三項演算子に関する問題です。

三項演算子は、条件式 ? true のときの値 : false のときの値と定義さ れます。

ですので if 文の条件はコマンドライン引数と"Hello"が一致した場合、true のときの値である 「false」となり、一致しなかった場合、false の時の値である「true」となります。

コマンドライン引数 には Helloが入っているため、if文の条件結果は false となり else文の処理が行われるため"Failure" が表示されます。正解は選択肢 B です。

 

삼항연산자에 관한 문제입니다.
삼항 연산자는 조건식 ? true일 때의 값 false일때의 값과 정의함 할 수 있습니다.
그러므로 if문의 조건은 커맨드 라인 인수와 "Hello"가 일치하는 경우, true일 때의 값이다. false가 되고, 일치하지 않으면 false일 때의 값인 true가 됩니다.
명령줄 인수 에는 Hello가 들어있기 때문에 if문의 조건 결과는 false가 되어 else문 처리가 이루어지기 때문에 "Failure"가 표시됩니다.정답은 선택지 B입니다.