-5

突然この質問が頭に浮かんだとき、私はJavaで三項演算子をいじっていました。PHP では、決定に三項演算子を使用して、次のようにメイン ドキュメントにコマンド (またはタグ) を配置できます (PHP マニュアルの例)。

echo (true?'true':false?'t':'f');

さて、これに似たことがJavaで可能ですか?同様に、以下のコードに似たものは可能ですか?

jButton1.getText().equals("hi")?jLabel1.setText("one"):jLabel1.setText("two")

私が望むのは、真/偽の値に従ってステートメントの1つだけを実行する必要があるということです。これはコンストラクトを使用したほうがよいことはわかっていますがif-else、気になったのでこの質問をしました。

4

3 に答える 3

3

代わりにこれを使用してください:

jLabel1.setText(jButton1.getText().equals("hi") ? "one" : "two");

JLS によると、この演算子はJava では条件演算子と呼ばれます。上記のリンクを読むとわかります

2 番目または 3 番目のオペランド式のいずれかが void メソッドの呼び出しであることは、コンパイル時エラーです。

于 2011-08-21T17:23:40.027 に答える
0

または:

jButton1.getText ().equals ("hi") && jLabel1.setText ("one") || jLabel1.setText ("two");

JRL のソリューションははるかに洗練されていますが、"hi" に応じてさまざまなラベルを操作したい場合は、そのようなアプローチが必要になる場合があります。

于 2011-08-21T17:28:18.533 に答える
0

Javaには間違いなく三項演算子があります。私にはあなたがそれを正しく使っているように見えます。問題が発生した場合は、括弧をいじってみますが、正しく使用しているようです。

今週の Java 用語: Ternary Operatorはそれを説明しています。

于 2011-08-21T17:28:41.007 に答える