2016-11-18 3 views
0

firstdayが5または6に等しいかどうかを確認しようとしています。どちらの場合も、totalDaysが31に等しい場合は、その目的のために何かを実行しますか?使用方法|| &&一緒に1つのステートメントで

コード1:

if (firstday > 5 || firstday > 6 && totalDays == 31){} 

コード2:

if (firstday > 5 && totalDays == 31 || firstday > 6 && totalDays == 31) { } 
+0

私は 'あなたが必要といけないと思います||最初のステートメントの最初の日> 6' – Mahi

+0

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Operator_Precedence – Mahi

+0

条件を英語で繰り返し、条件をグループ化するために '()'を使用してください。あなたの声明では* firstdayは5または6に等しいが、どちらの場合もtotalDaysは31 *でなければならない。だから最初の部分を解決してください: 'firstday === 5 ||最初の日=== 6。あなたの2番目の条件は 'totalDays === 31'です。しかし、これは両方の場合に起こらなければならないので、これは(最初の=== 5 ||最初の=== 6)&& totalDays === 31' – Rajesh

答えて

2

これが正解です。残りの式が評価される値に基づいて、上記の式がfalseを返す場合は、false&&(true||false)がfalseなので残りの式は評価されません。

+0

ポインタだけで、 '=='の代わりに '==='を使うべきです – Rajesh

0

どちらも、あなたはそれのために==演算子を使用する必要が 間違っています。

if ((firstday == 5 || firstday == 6) && totalDays == 31){ 
    //Do something 
} 
+2

あなたは||オペレータ – mseifert

+0

ya。私はちょうどそれを編集しました。ありがとう。 –

0
if ((firstday == 5 || firstday == 6) && totalDays == 31){} 

ここで最初に実行される最も内側の括弧(firstday == 5 || firstday == 6)内の式:

if ((firstday == 5 || firstday == 6) && totalDays == 31){} 
+0

あなたのコードを少し説明してもらえませんか?答えにダンプするだけでは役に立ちません。 –

0

まず条件:firstdayは5 OR 6 .. TotalDaysである場合には、を返し はどちらも、あなたのロジックの作業31

if ((firstday == 5 || firstday == 6) && totalDays == 31){ } 
0

ですが、あなたは、あなたの質問に言及しています"最初の日が5または6に等しい場合は、">の代わりに '=='を使用することをお勧めします。後者は5以上の任意の値を受け入れますが、これはあなたが望むものと一致しません。

次のいずれかの行で希望の結果が得られます。

if (firstday == 5 || firstday == 6 && totaldays == 31) {} 

OR

if (firstday == 5 && totalDays == 31 || firstday == 6 && totalDays == 31) { } 
関連する問題