我最近开始在Codecademy上学习有关条件的话题。我正在尝试同时使用if + if else和switch + break + default。在本练习的最后一步,我遇到了这个问题。
我们可以使用案例X> y吗?
function showNav() {
if (window.pageYOffset >= visible) {
navbar.classList.add("visible");
} else {
navbar.classList.remove("hidden");
}
}
答案 0 :(得分:-1)
switch(X)
是“跳转至价值”的快捷方式。之所以用这种语言,是因为存在一个非常简单有效的优化来实现这一目标。
为使此优化有效,可能的值必须是静态的,并且在编译时已知。因此,在case Y:
目标中不能有动态/运行时Y。
优化就是这样(简化)的:
这不适用于您的情况,您必须像这样创建if/else
链:
enum House { gryffindor, hufflepuff, ravenclaw, slytherin };
std::string getHouse(House house, int & max) {
max = 0;
if (house == gryffindor) max = gryffindor;
else if (house == hufflepuff) max = hufflepuff;
else if (house == ravenclaw) max = ravenclaw;
else max = slytherin;
switch(max){
case gryffindor: return "gryffindor";
case hufflepuff: return "hufflepuff";
case ravenclaw : return "revenclaw";
case slytherin : return "slytherin";
default: return "none";
}
}
如果您不打算结案,则必须使用break;
退出switch
程序段。