1

スイッチケースがあり、二重パイプを使用して 3 つの異なるケースを 1 つの結果に導きたいと考えています。

http://jsfiddle.net/qCA3G/

var type = "JPEG"

switch(type){
    case "PNG" || "JPG" || "JPEG":
    alert("works");
    break;
    default:
    alert("not working");
    break;
}

ファイルの種類ごとに個別のケースを作成することは明らかですが、私の試みに似た、より効率的な方法があるはずです。

4

4 に答える 4

7

これが、スイッチにフォールスルーがある理由です。

switch(type){
    case "PNG":
    case "JPG": 
    case "JPEG": 
       alert("works");
       break;
    default:
       alert("not working");
       break;
}

しかし、フォールスルーは気まぐれな獣です! 恐ろしい忘れられた break ステートメントに注意してください

switch(type){
    case "PNG":
    case "JPG": 
    case "JPEG": 
       alert("works");
    default: // forgot break BOTH ALERTS RUN!
       alert("not working");
       break;
}
于 2013-09-25T02:23:32.443 に答える
2

それはスイッチケースが機能する方法ではありません。代わりにフォールスルー ケースを作成する必要があります (break ステートメントをスキップします)。

var type = "JPEG"

switch(type){
    case "PNG":  
    case "JPG":  
    case "JPEG":  
       alert("works");
    break; //break here if you dont want to fall through again
    default:
       alert("not working");
    break;
}
于 2013-09-25T02:24:00.787 に答える
1

ええ、あります:

        var type = "JPEG"

        switch (type) {
        case "PNG":
        case "JPG":
        case "JPEG":
            alert("works");
            break;
        default:
            alert("not working");
            break;
        }
于 2013-09-25T02:23:39.380 に答える
1

試す

var type = "JPEG"

switch(type){
    case "PNG":
    case "JPG":
    case "JPEG":
      alert("works");
    break;
    default:
      alert("not working");
    break;
}
于 2013-09-25T02:24:30.210 に答える