本文翻译youtube上的up主kudvenkat的javascript tutorial播放单
源地址在此:
https://www.youtube.com/watch?v=PMsVM7rjupU&list=PL6n9fhu94yhUA99nOsJkKXBqokT3MBK0b
我们何时应该使用swtich语句
为了增强可读性,我们可以用switch语句来替代if-else-if语句
注意到以下代码有多个if-else-if语句
var userInput = Number(prompt("Please enter a number", ""));
if (userInput == 1)
{
alert("You number is One");
}
else if (userInput == 2)
{
alert("You number is Two");
}
else if (userInput == 3)
{
alert("Your number is Three");
}
else
{
alert("Your number is not between 1 and 3");
}
以上代码可以用switch语句来写以大大增加可读性
switch (userInput)
{
case 1:
alert("You number is One");
break;
case 2:
alert("You number is Two");
break;
case 3:
alert("You number is Three");
break;
default:
alert("You number is not between 1 and 3");
break;
}
一般来说,你需要在每个case后加入break来跳出swtich语句
那么如果在switch语句里不添加break会发生什么呢?
那么在找到case之后会自动运行下一个case,直到运行完整个程序
在以下的例子中,我们不再case1中加入break语句,那么当我们输入数字1之后,我们会得到两个alerts,第一个alerts是从case1中得来,第二个alert是从case2中得来.
var userInput = Number(prompt("Please enter a number", ""));
switch (userInput)
{
case 1:
alert("You number is One");
case 2:
alert("You number is Two");
break;
case 3:
alert("You number is Three");
break;
default:
alert("You number is not between 1 and 3");
break;
}
你可是应该将多个case语句合并在一起呢?
如果你想要给多个case同一份代码的话,可以如下把各个case合并在一起.一个case语句如果里面没有任何语句的话那么就是多个不同的值共享一个case.一个没有内含代码的case会自动跳转到下一个case
在这个例子中,case1和case2的情况会自动跳转到case3并且运行其中的代码
var userInput = Number(prompt("Please enter a number", ""));
switch (userInput)
{
case 1:
case 2:
case 3:
alert("You number is "+ userInput);
break;
default:
alert("You number is not between 1 and 3");
break;
}