2016-11-29 7 views
0

私はif文を書くことを試みています。もしaが真で、どちらかが真であれば何かをします。if文を複数の条件で書くにはどうすればよいですか?

私はこれを書いていますが、その論理が正しいかどうかはわかりません。 badstatus または pmbadstatusがtrueの場合critStatusは& & falseの場合

if (critStatus == false && badStatus == true || pmBadStatus == true) { 
//do something 
} 

基本的にはそれが何かをしなければなりません。

+5

「if(!critStatus &&(badStatus || pmBadStatus))」のように聞こえます。 – khelwood

+0

私はそれを聞いている間にOPが文字通り自分の質問に対する答えをタイプするのが好きです。 :P – DejaVuSansMono

+1

Btw、 'f == true'は' f'と書かれ、 'f == false'は'!f'と書かれます。 – khelwood

答えて

1

(& & B)|| C又は& &(B || C)は括弧である場合、注文が依存する評価同じではありません。あなたはこのようなあなたの条件を記述する必要がありますので

あなたは

if (!critStatus && (badStatus || pmBadStatus)) { 
    //do something 
} 
1

&&を意味するが、||よりも優先順位が高い:

if (critStatus == false && (badStatus == true || pmBadStatus == true)) 

は、Javaの優先順位のルールhereを参照してください。

+2

ブール変数を 'true'または' false'と比較しないでください。 'if(!critStatus &&(badStatus || pmBadStatus))'を使って、 – bradimus

0
if (critStatus == false && (badStatus == true || pmBadStatus == true)) { 
//do something 
} 

括弧が必要です。かっこの前の文は次のとおりです。

if ((a = true and b = true) OR c = true){ 
関連する問題