2016-04-04 7 views
-1

Hier ist mein Code: Ich möchte, dass mein Switch umläuft, wenn jemand einen Namen eingibt, der nicht vorhanden ist. Ich bin neu in JavaScript und lerne JavaScript für die Arbeit, das ist etwas, was ich gerade mache, um es zu üben. Es funktioniert funktional, ich versuche nur einen Weg zu finden, um es in Schleife zu bringen, wenn es den Standardfall passiert. Vielen Dank! Um die Namen meiner Mitarbeiter nicht zu verwenden, habe ich alle Fälle auf meinen Namen umgestellt.Versuchen Sie, einen Schalter zu erhalten, um beim Auftreten des Standards zu einer Schleife zu gelangen.

String.prototype.capitalizeFirstLetter = function() { 
 
    return this.charAt(0).toUpperCase() + this.slice(1); 
 
} 
 

 
var name = prompt("Please enter the name of the recipient to recieve a burn notice").toLowerCase(); 
 

 

 
switch (name) { 
 
    case 'brent': 
 
    case 'brent': 
 
    case 'brent': 
 
    case 'brent': 
 
    case 'brent': 
 
    case 'brent': 
 
    case 'brent': 
 
    case 'brent': 
 
    alert(name.capitalizeFirstLetter() + " has revieved a burn notice, ice is located downstairs in the freezer."); 
 
    break; 
 
    default: 
 
    alert("Didn't find " + name.capitalizeFirstLetter() + " please try again."); 
 
}

+0

Warum haben Sie sieben identische 'brent' Fälle, die leer sind? –

+0

es heißt Fall-through, da meine Fälle alle den gleichen Alarm erhalten, ich lasse es einfach fallen, bis es den Alarm findet. Ich habe über in Codeschool.com in –

Antwort

1

Code in Funktion setzen und es wieder aufrufen, wenn Sie den Standardfall erreichen.

function askForName() { 
    var name = prompt("Please enter the name of the recipient to recieve a burn notice").toLowerCase(); 

    switch (name) { 
    case 'brent': 
     alert(name.capitalizeFirstLetter() + " has revieved a burn notice, ice is located downstairs in the freezer."); 
     break; 
    default: 
     alert("Didn't find " + name.capitalizeFirstLetter() + " please try again."); 
     askForName(); 
    } 
} 

// initial call to make sure the function runs 
askForName(); 
+0

gelernt Vielen Dank! Ich werde es definitiv versuchen! –

0

können Sie continue verwenden, um nächsten Schritt einer Schleife zu gehen, wenn Sie Ihren Code in einem Ort.

for(;;) { 
    var name = prompt("Please enter the name of the recipient to recieve a burn notice").toLowerCase(); 
    switch (name) { 
     case 'brent': 
      alert(name.capitalizeFirstLetter() + " has revieved a burn notice, ice is located downstairs in the freezer."); 
      break; 
     default: 
      alert("Didn't find " + name.capitalizeFirstLetter() + " please try again."); 
      continue; 
    } 
} 

Im Beispiel continue ist überflüssig, aber Sie bekommen die Idee.

Wie auch immer, es gibt bessere Möglichkeiten, die gewünschte Funktionalität zu erreichen, wenn Sie weitere Informationen zu dem, was Sie wollen, bereitstellen.