admin管理员组文章数量:1290789
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;
}
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;
}
Share
Improve this question
edited Jul 28, 2015 at 8:14
Salman Arshad
272k84 gold badges443 silver badges534 bronze badges
asked Jul 27, 2015 at 20:13
LaviosLavios
1,17910 silver badges22 bronze badges
0
3 Answers
Reset to default 9You 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) {
//...
The switch
statement performs a strict parison 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)
Besides other answers, you can use the unary plus +. It actually does the same thing as Number(...), but is shorter. In other words, the plus operator + applied to a single value, doesn’t do anything to numbers. But if the operand is not a number, the unary plus converts it into a number.
for instance:
let a = '2';
alert( a + 3); // 23
but
let a = '2';
alert( +a + 3); // 5
so add unary + before prompt in your code:
var i = +prompt("Type any number from where you want to start counting[Between 0 and 10]");
本文标签: javascriptSwitch Statementit does not work with promptStack Overflow
版权声明:本文标题:javascript - Switch Statement, it does not work with prompt - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741515338a2382850.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论