2016-04-24 22 views
-9

さて、私はプログラムに取り組んでいましたが、ちょっとした問題や質問に遭遇しました。! &&演算子Java

など。

int num1 = 3, int num2 =0; 
while (!num1 == 1 && num2 == 0) 
    { 
     ... 
    } 

!&&の前に、または一部だけに全なステートメントに適用されますか? !のみ&&前の部分に適用されるよう

+4

このhttps://docs.oracle.com/javase/tutorial/java/nutsandbolts/operatorsから学びます.html –

+3

'!num1 == 1'このコードはコンパイルされません。 – Radiodef

答えて

0

!は、Javaのorder of operationsに従って&&前に適用されます。

+0

'=='の前にも適用されるので、コンパイルされません。 – Andreas

3

!の部分は、実際には部分でさえも、num1整数(実際にはあなたが望むものではありません)にのみ適用されます。

だからあなたの表現は、基本的にはEclipseなど

if (((!num1) == 1) && (num2 == 0)) { 
+0

明確にするために、 '! num1'は無効なので、そのかっこの有無にかかわらず、コードはコンパイルされません。あなたはJavaの数字にブール* * "not" *をすることはできません。 – Andreas

0

使用IDEで、最新のJavaバージョンにコンパイラー準拠レベルを設定します。正しい判断を下すためのエラーが表示されます。

そして、あなたが優先順位はどのように機能するかを読みたい場合は、ここでは公式のJava参照リンクをたどる: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html