尝试使用随机数的简单开关
它似乎不起作用。总是到default
案例。
var x = 0;
x = (Math.random() * 10 + 1);
switch(x) {
case x >= 5:
console.log("the number is bigger than 5");
break;
case x <= 5:
console.log("the number is smaller than 5");
break;
default:
console.log("strange number");
}
console.log(x);
输出始终类似于:
strange number 5.922413225153608
答案 0 :(得分:4)
你无法做到这一点。你必须这样做
$html = file_get_contents(public_path() . 'content.html');
$dom = new \DOMDocument();
$dom->loadHTML($html);
var_dump($dom->getElementById('panel_header'));
答案 1 :(得分:3)
在case
和:
之间,您必须拥有值。
x >= 5
和x <= 5
将为您提供true
或false
,然后将x
与之进行比较。由于x
始终是一个数字,因此永远不会是true
或false
,因此您始终会点击default
。
改为使用if
/ else if
/ else
。
答案 2 :(得分:2)
这不是switch
语句在JavaScript中的工作方式, 1 你正在寻找的是if/else if/else
系列而是:
if (x >= 5) {
console.log("the number is bigger than 5");
} else if (x <= 5) {
console.log("the number is smaller than 5");
} else {
console.log("strange number");
}
但有两点说明:
你的第一和第二个案件都包括5个;第一个会赢。
x
到达最终else
的唯一值是NaN
(或转换为数字时转换为NaN
的内容),因为{ {1}}和NaN >= 5
都是NaN <= 5
。
在评论中你说过:
谢谢,重点是练习
false
。
如果是这样,你要么必须做下面的事情(可能不是教师想要的那样),要么限制值的范围,因为交换机的情况是针对完全匹配。
例如,如果您更改了代码只允许整数,则可以使用具有直通的案例:
switch
当你不使用var x = 0;
x = Math.floor(Math.random() * 10 + 1); // Note change: Only integers
switch(x) {
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
console.log("the number is bigger than 5");
break;
case 1:
case 2:
case 3:
case 4:
console.log("the number is smaller than 5");
break;
default:
console.log("strange number");
}
console.log(x);
时,这会使用案例这一事实。
但是您无法使用原始break
执行此操作,因为要列出的x
范围内的浮点值太多。
JavaScript 1 <= x < 11
确实有一项功能可以在这里使用switch
,但switch
几乎肯定是更好的选择。纯粹是为了完整性:
if/else if/else
这是有效的,因为与许多语言不同,JavaScript // PROBABLY NOT A GOOD IDEA
switch (true) {
case x >= 5:
console.log("the number is bigger than 5");
break;
case x <= 5:
console.log("the number is smaller than 5");
break;
default:
console.log("strange number");
break;
}
switch
被允许作为表达式,并且它们按照它们出现在{{的顺序进行测试1}}(当然不是case
),使用的是第一个匹配的switch
。
但同样,除非在非常非常有限的情况下,在现实世界中使用可能并不好。
答案 3 :(得分:2)
虽然switch
正在使用严格比较,并且您已经在switch
子句中进行了比较,但您可以将switch(true) {
语句更改为
switch(true) {
case x >= 5:
console.log("the number is bigger than 5");
break;
case x <= 5:
console.log("the number is smaller than 5");
break;
default:
console.log("strange number");
}
并使用剩下的,你有。