2017-04-07 6 views
1

私はすべてが同じ行動をする場合、複数のケースを実行することが可能であることを知っています。その後、AとB、何かを...異なる機能を持つ2つのケースを同時にどのように実行するのですか?

switch(true){ 
case A: 
case B: 
    //do something; 
break; 
case C: 
    //do something else;} 

は、しかし、私はそれが次のために働くようにする方法を確認していないことは事実である場合、以下の例を考える:

switch(true){ 
case A: 
    alert("A"); 
case B: 
    alert("B"); 
break; 
case C: 
    //do something else;} 

場合AとBの両方が真実であれば、それは "A"と "B"を警告するはずです。おそらくswitch文はこの例では良い選択肢ではないかもしれませんが、私はこれを理解できませんでした。どんな提案、推奨?

+0

正確に何が質問ですか?これは投稿されたように意味をなさない。 – Pointy

+0

これは不明です - 同時にどのように2つの異なる場合がありますか? –

+1

@OliverCharlesworthは '&&'のように見えます。最初のケースは '||'です。 –

答えて

0

をtradationalに戻る、それはあなたがABCが真であるかどうかを確認しようとしているように見え、それが実行された場合alert()に一致します。 switchの目的は、与えられた値が何であるかを確認します(これだけ1ケースが真である可能)と、それを実行し、そのようにすることです:

function demoFunction1(fruit){ 
    var sentence = ""; 
    switch (fruit) { 
     case "apple": sentence = "I love apples!"; break; 
     case "banana": sentence = "I hate bananas!"; break; 
     case "watermelon": sentence = "Watermelon is okay"; break; 
    } 
    alert(sentence); 
} 

だから、これがあれば、fruitの値が何であるかを確認しています"apple""banana"または"watermelon"の場合は、一致するケースのコードが実行されます。

それはあなたのwanna使用がそうのようなif文であるもののように私には見えます:ABCが個別trueであれば、それらのうちのどれかが中に何があるか、次にある場合

function demoFunction2(A, B, C){ 
    if (A) { 
     alert("A"); 
    } 
    if (B) { 
     alert("B"); 
    } 
    if (C) { 
     alert("C"); 
    } 
} 

あなたがチェックしている。この方法if文の{}が実行されます(関数呼び出しまたはこの場合はアラートなど)。これは、A,BおよびCのいずれかの組み合わせがtrue/falseである場合に機能します。

0

あなたはあなたの問題を説明するのと混同しました。

case A: 
case B: 
    //do something; 

これはAであるか、Bであれば真となり実行されます。 AとBの両方が、それは「A」と「B」を警告すべきであることは事実である場合は、

探しているものを

この場合、スイッチは機能しません。私はあなたが間違ってswitchを使用しようとしていると思うelse if

if (str.equals("A") && str.equals("B")) { 

    alert("A"); 
    alert("B"); 

}else if(str.equals("C")){ 

alert("C"); 

}else...... // other conditions 
0

便宜的にswitch(true)を使用することは避けてください。(たくさんのフォールスルーが必要な場合を除きます)、if/elseを使用するときれいです。あなたのケースでは、あなたは

if (A || B) { 
    // do something; 
} else if (C) { 
    // do something else; 
} 

を持っているでしょうし、それはあなたの新しい要件に合ったときに自明

if (A && B) { 
    alert("A"); 
    alert("B"); 
} else if (C) { 
    // do something else; 
} 

にこれを変更することができます。(はい、あなたもcase A && B:でしたが、それは理解するのがはるかに難しいです)

関連する問題