在JavaScript中,以下语句是有效的。
switch(true) {
case a > b:
max = a;
break;
case a < b:
max = b;
break;
default:
max = a;
}
但在C/C++编程语言中,当我写下这个语句时,编译器会显示一个错误,指出case语句必须由常量值组成。在特定情况下,编写此类switch-case语句非常有用,但C/C++不允许这样做。
现在我很好奇为什么不允许在case语句中使用变量值?
switch(true)
的意义是什么? - Beta Carotinswitch
语句作为非常高效的编译时查找表。 - juanchopanzacase
在运行时都被评估,那么想象一下使用具有副作用的case
的可能性是多么大。让我感到非常温暖。 - EOF