最後の条件で、演算子「&&」の左側の式から始まり、右側のステートメントが true になる条件が評価されることを期待していました。ただし、ここで「トークン "="、!= の構文エラーが予想されます" というコンパイル エラーが発生します。この問題に関する説明は非常に役立ちます。
boolean boolTrue=Boolean.TRUE;
boolean assignBool=Boolean.FALSE;
int ten=10;
//eventually evaluates to true , runs okay
if(assignBool=boolTrue){
System.out.println("Executed");
}
//evaluates to true && true: runs correctly
if( assignBool=boolTrue && ten==10 )
System.out.println("Executed");
//evaluates to true && true : runs correctly
if( ten==10 && (assignBool=boolTrue) )
System.out.println("Executed");
/*was supposed to evaluate to true && true : but gives compile error
compiler expects me to use '!=' or '==' operator though the second statement ultimately evaluates to true
as in above case*/
if( ten==10 && assignBool=boolTrue )//Compile error
System.out.println("Executed");
編集:答えてくれてありがとう。それがオペラターの優先順位の問題であるかどうかを確認するために、 for ループで同じケースを実行し、はい、それでした。
boolean boolTrue=Boolean.TRUE;
boolean assignBool=Boolean.TRUE;
int ten=10;
singleloop:
for(int i=0;((ten==10 && assignBool)==boolTrue);System.out.println("Executed")){
i++;
if(i>10)
break singleloop;
}