Java は、特定のタイプの if-then-else ステートメントを置き換えるためによく使用される特別な三項演算子 (三項演算子とも呼ばれる) を提供します。条件演算子の記号は「?:」で、この演算子を使用する場合はオペランドが 3 つ必要となるため、三項演算子と呼ばれます。条件演算子を使用するための一般的な構文構造は次のとおりです。
result=
ここで、expression はブール式です。式が true の場合は、statement1 が実行され、それ以外の場合は、statement3 が実行されます。この三項演算子には結果が返される必要があるため、単純なバイナリ プログラムを実装するには、この条件演算子を使用できます。
intx,y,z;
x=6,y=2;
z=x>y?x-y:x y;
ここへz の値を計算するには、まず x > y で表される値を決定します。真の場合、z の値は x-y であり、そうでない場合、z の値は x y です。明らかに、x>y 式は true と評価されるため、z の値は 4 になります。
ヒント: 条件演算子は、if-else ステートメントの簡略化された形式として理解できます。より単純な式を使用する場合、この演算子を使用すると、プログラム コードが簡略化され、プログラムが読みやすくなります。
たとえば、次の式:
x>y?x-=y:x =y ;
条件演算子は代入演算子よりも優先されるため、コンパイル中に構文エラーが発生します。上記のステートメントは実際には次と同等です:
(x>y?x-=y:x) ) =y;
演算子「=」は代入演算子であり、左側のオペランドが変数である必要があるため、エラーが発生します。このようなエラーを避けるために、括弧「0」を使用して区別することができます。たとえば、次のような表現が正しいです。
(x>y)?(x-=y):(x =y);
例 1
3 つの変数 x、y、z、およびユーザーはキーボードから x の値を入力し、条件演算子を使用して変数 y と変数 z に値を割り当てます。実装コードは次のとおりです:
publicclassTest9{
publicstaticvoidmain(String[]args){
intx,y,z;//3 つの変数を宣言
System.out.print("数字を入力してください:");
Scannerinput=newScanner(System.in);
x=input.nextInt();//入力 x by the user The value of
// x の値が 5 より大きいかどうかを判断し、y=x の場合は y=-x
y=x>5?x: -x;
//z=yの場合はyの値がxより大きいかどうか、そうでない場合はz=5
z=y>x?y:5;
System.out.printf(" x=%d\n",x);
# System.out.printf("y=%d\n",y);# System.out.printf("z= %d\n",z);
}
}
このプログラムでは、まず x の値を次のように入力します。 58 を調べてから、 x の値が 5 より大きいかどうかを判断し、明らかに条件が true であれば、 y の値は x、つまり y=58 になります。次に、y の値が x より大きいかどうかを確認します。y の値と x の値は両方とも 58 であるため、この条件は真ではなく、z=5 となります。 x の値を 4 と再度入力し、x の値が 5 より大きいかどうかを判断し、そうでない場合は y=-4、次に y の値が x より大きいかどうかを判断し、大きいかどうかを判断します。が真でない場合、z=5。
以上がJava 三項演算子とは何か、またその使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。