问题
I just learned switch statements. I was practicing it by building something. When i set the value of variable to a number it works but when i asks the user for a number it always outputs the default statement.
It works with this code:
confirm("You want to learn basic counting?");
var i = 0;
switch (i) {
case 0:
console.log(i);
i++
case 1:
console.log(i);
i++;
case 2:
console.log(i);
i++;
case 3:
console.log(i);
i++;
case 4:
console.log(i);
i++;
case 5:
console.log(i);
i++;
case 6:
console.log(i);
i++;
case 7:
console.log(i);
i++;
case 8:
console.log(i);
i++;
case 9:
console.log(i);
i++;
case 10:
console.log(i);
console.log("Congratulations!");
break;
default:
console.log("Buzz, wronghh");
break;
}
But when i asks value from user, it dosen't work. Code below doesn't work:
confirm("You want to learn basic counting?");
var i = prompt("Type any number from where you want to start counting[Between 0 and 10]");
switch (i) {
case 0:
console.log(i);
i++
case 1:
console.log(i);
i++;
case 2:
console.log(i);
i++;
case 3:
console.log(i);
i++;
case 4:
console.log(i);
i++;
case 5:
console.log(i);
i++;
case 6:
console.log(i);
i++;
case 7:
console.log(i);
i++;
case 8:
console.log(i);
i++;
case 9:
console.log(i);
i++;
case 10:
console.log(i);
console.log("Congratulations!");
break;
default:
console.log("Buzz, wronghh");
break;
}
回答1:
You need to convert the user input from a string to an integer, like so
confirm("You want to learn basic counting?");
var i = prompt("Type any number from where you want to start counting[Between 0 and 10]");
i = parseInt(i); // this makes it an integer
switch(i) {
//...
回答2:
The switch statement performs a strict comparison between the input expression and case expressions. The output of the following would be:
var i = 1;
switch (i) {
case "1":
console.log('String 1');
break;
case 1:
console.log('Number 1');
break;
}
// Number 1
var j = "1";
switch (j) {
case "1":
console.log('String 1');
break;
case 1:
console.log('Number 1');
break;
}
// String 1
The prompt function returns a string so either:
- Change your case statements to
case "1":
,case "2":
- Case the user input to a number using
i = Number(i)
来源:https://stackoverflow.com/questions/31662389/switch-statement-it-does-not-work-with-prompt