2017-07-15 4 views
0

私は条件付き演算を行うメソッドを持っています。 コンパイルエラーが発生します。条件演算子から返された値をjavaに格納する必要がありますか?

public void hello(){ 
    int x=15; 
     x==15 ?"Hi":"Bye"; 
} 

私は行を編集し、下記のものを入れた場合は、エラーが消える:

String salutation=x==15 ?"Hi":"Bye; 

私の質問をする条件演算子によって返される値を代入することが必須--isされます変数?

+2

:あなたの例では、我々はこのような単一の行に上記の例を書き換えることができます条件演算子を使用して

public void hello(){ int x = 15; String salutation; if (x == 15){ salutation = "Hi"; }else salutation = "Bye; } 

を書き換えることができます。 –

+0

行 'x == 15?"のエラーのreasoin "Hi": "Bye;'はStringにintを代入していることを表します –

+0

x == 15は文字列にintを代入していますか? – Raj

答えて

1

x==15 ? "Hi" : "Bye;ちょうど浮動小数点は何もしません。それは純粋な表現です。コードの途中に"Hi"と書いているだけです。実際に効果を出すには、それを変数に割り当てる必要があります。

したがって、三項に何かをさせたい場合は、結果を割り当てる必要があります。三項(条件、および両方の節)の部分を提供しないことは、副作用を遂行する。

0

あなたは必ずしもそうではありません javaの

に条件演算子によって返された値を格納する必要がありますが、あなたがそれを使用せずにそれを宣言することはできません簡素化します。あなたが行ったように

あなたが例えば変数に割り当てることができ:

String salutation=x==15 ?"Hi":"Bye; 

しかし、あなたは、ローカル変数に値を格納することを余儀なくされていません。
これを使用する他の方法があります。

myMethod(x==15 ?"Hi":"Bye"); 

public void myMethod(String string) {... } 

それとも、まだ上の方法を適用するためにそれを使用することができます:あなたが取得している

if ((x==15 ?"Hi":"Bye").equals("Bye")){ 
    ... 
} 
0


あなたは、例えば文字列を待ち、それをパラメータとして渡すことができますエラーは、条件に基づいて値を割り当てていないためです。単一の条件に基づいて2つの状態のうちの1つに1つの変数を割り当てることは、if-elseの一般的な使用であり、そのためにショートカットが考案された、条件演算子?:です。条件が値を返さない場合は、簡略形式?:を使用することはできません。あなたは答えを求めている

public void hello(){ 
    int x = 15; 
    String salutation = x==15 ?"Hi":"Bye; 
} 
関連する問題