2017-04-05 4 views
3

変数room_x_bedsが必要です。デフォルトの領域については気にしません。スイッチ変数による支援

var room_x_bedsの値をvar xに割り当てることはできませんか?

なぜか分かりません。

コード:

var room_1_beds = 2; 
var room_2_beds = 2; 
var room_3_beds = 1; 
var give_num = prompt(); 
var x; 

switch(give_num){ 
    case "1": 
     x = room_1_beds; 
     break; 
    case "2": 
     x = room_2_beds; 
     break; 
    case "3": 
     x = room_3_beds; 
     break; 
    default: 
    break; 
     } 

switch(x){ 
    case "1": 
     console.log ("text"); 
    break; 
    case "2": 
     console.log ("text"); 
    break; 
    default: 
    break; 
} 

答えて

3

switch文の値が数値でない文字列でなければなりません。

var room_1_beds = 2; 
 
var room_2_beds = 2; 
 
var room_3_beds = 1; 
 
var give_num = prompt(); 
 
var x; 
 
switch(give_num){ 
 
    case "1": 
 
     x = room_1_beds; 
 
     break; 
 
    case "2": 
 
     x = room_2_beds; 
 
     break; 
 
    case "3": 
 
     x = room_3_beds; 
 
     break; 
 
    default: 
 
    break; 
 
     } 
 

 
switch(x){ 
 
    case 1: 
 
     console.log ("text"); 
 
    break; 
 
    case 2: 
 
     console.log ("text"); 
 
    break; 
 
    default: 
 
    break; 
 
}

+0

あなたにも厳しいcompairingを追加することができます。 –

+0

@ NinaScholzこれについて少し調べました。私はswitch文が最初にその式を評価することを発見しました。次に、式が入力式の結果と同じ値に評価される最初のcase節を検索し(厳密な比較===を使用して)、その句に制御を移して、関連するステートメントを実行します。* MDN、https: /developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/switch。あなたがこれを指しているのではありませんか?これがデフォルトの動作です。前もって感謝します。 – Christos

+0

そう、そのタイプを変更する理由があります。両方の部分が '==='のように厳密な比較でチェックされます。 –