2017-04-05 3 views
3

Die Variable room_x_beds ist notwendig, ich bin nicht über den Standardbereich gestört.Unterstützung mit Schaltvariablen

Ich kann den Wert von var room_x_beds nicht zu var x zuweisen?

Ich verstehe nicht warum.

Code:

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; 
} 

Antwort

3

Die Werte der zweiten switch Anweisung sollte Zahlen nicht Strings sein.

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

Sie auch die strengen Compairing hinzufügen könnte. –

+0

@NinaScholz Ich habe ein bisschen gesucht und das gefunden. * Eine switch-Anweisung wertet zuerst den Ausdruck aus. Es sucht dann nach der ersten case-Klausel, deren Ausdruck den gleichen Wert liefert wie das Ergebnis des Eingabeausdrucks (strict comparison ===), und übergibt die Steuerung an diese Klausel, wobei die zugehörigen Anweisungen ausgeführt werden. * At MDN, https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Statements/switch. Ist das nicht das, worauf du dich beziehst? Wenn dies der Fall ist, ist dies das Standardverhalten. Danke im Voraus. – Christos

+0

richtig, das ist der Grund, den Typ zu ändern. Beide Teile werden mit einem strikten Vergleich wie '===' überprüft. –