我一直在开发一个使用switch()
函数的项目,如下所示:
switch (selectedMenu) {
case 1:
switch (selectedIndex) {
case 0:
invisibility = !invisibility;
break;
case 1:
invincibility = !invincibility;
break;
case 2:
superjump = !superjump;
break;
case 3:
//Option 4
break;
case 4:
//Option 5
break;
}
case 2:
switch (selectedIndex) {
case 0:
//Option 2
break;
case 1:
//Option 2
break;
case 2:
//Option 3
break;
case 3:
//Option 4
break;
case 4:
//Option 5
break;
}
case 3:
switch (selectedIndex) {
case 0:
//Option 2
break;
case 1:
//
break;
case 2:
//Option 3
break;
case 3:
//Option 4
break;
case 4:
//Option 5
break;
}
case 4:
switch (selectedIndex) {
case 0:
//Option 2
break;
case 1:
//Option 2
break;
case 2:
//Option 3
break;
case 3:
//Option 4
break;
case 4:
//Option 5
break;
}
case 5:
switch (selectedIndex) {
case 0:
//Option 2
break;
case 1:
SET_ENTITY_COORDS(pedID, -75.015, -818.215, 326.176);
break;
case 2:
//Option 3
break;
case 3:
//Option 4
break;
case 4:
//Option 5
break;
}
}
我的代码遇到了错误。
在case 5 -> case 1
中有这一行:SET_ENTITY_COORDS(pedID, -75.015, -818.215, 326.176);
,它应该将实体传送到某个位置。当我在这个传送案例上面的任何一个案例中使用一个选项时,它将传送实体,即使它不属于这种情况。
这很难解释,所以让我们画一幅画:
如何调整此值以便它只启用我在案例中指定的功能而不是它上面的所有功能?
(我如何调整它以便它只启用superjump而不是superjump和传送用户?)
答案 0 :(得分:5)
您的外break
个案件需要switch
个陈述:
switch (selectedMenu) {
case 1:
switch (selectedIndex) {
// blah, blah, blah...
}
break; // <-- this
case 2:
switch (selectedIndex) {
// blah, blah, blah...
}
break; // <-- this
case 3:
switch (selectedIndex) {
// blah, blah, blah...
}
break; // <-- this
case 4:
switch (selectedIndex) {
// blah, blah, blah...
}
break; // <-- this
case 5:
switch (selectedIndex) {
// blah, blah, blah...
}
break; // <-- this
}
答案 1 :(得分:3)
Michael Burr已经说过要解决问题需要做些什么,但代码中发生的事情是switch
和C
语句中C++
语句的自然设计。 break
是指如果您不在continue
部分的函数中使用条件:return
或case
或fall-through
,则代码将case
1}}到下一个switch( idx ) {
case 1: {
// some code
}
case 2: {
// some code
continue;
}
case 3: {
// some code
break;
}
case 4: {
// some code
return statement;
}
}
语句。
简单示例:
case 1
在上面的代码示例中,continue
不使用此switch语句所在的函数中的break
,return
或case 1
。那么这里会发生什么呢?遇到case 1
它将执行case 2
代码块中的代码,然后它会检查Case 2
。 case 3
将继续执行,case 4
将突破switch语句,.no-style{
text-decoration:none!important;
}
.nav-tabs {
background-color:#333;
border-bottom: 2px solid #DDD;
}
.nav-tabs > .nav-item > .nav-link.active, .nav-tabs > .nav-item > .nav-link.active:focus, .nav-tabs > .nav-item > .nav-link.active:hover {
border-width: 0;
}
.nav-tabs > .nav-item > .nav-link {
border: none;
color: rgba(255,255,255,.6);
}
.nav-tabs > .nav-item > .nav-link.active, .nav-tabs > .nav-item > .nav-link:hover {
border: none;
color: rgba(255,255,255,1);
background: transparent;
}
.nav-tabs > .nav-item > .nav-link::after {
content: "";
background: #4285F4;
height: 2px;
position: absolute;
width: 100%;
left: 0px;
bottom: -1px;
transition: all 250ms ease 0s;
transform: scale(0);
}
.nav-tabs > .nav-item > .nav-link.active::after, .nav-tabs > .nav-item:hover > .nav-link::after {
transform: scale(1);
}
将直接从函数返回。 switch-case语句的这些相同特性也适用于嵌套的switch语句。