C++ Switch语句仅适用于某些情况 for(int i=0;i
您在每个C++ Switch语句仅适用于某些情况 for(int i=0;i,c++,switch-statement,C++,Switch Statement,您在每个案例的结尾处缺少一个中断。它贯穿了所有案例,只有最后一个案例生效 ofstream Zone1H; Zone1H.open("TEST.txt"); for(int l=0; l<5; l++) Zone1H<<LAYOUT[i].x<<" "<<LAYOUT[i].y<<endl; for(int i=0;i您在每个案例的结尾处缺少一个中断。它贯穿了所有案例,只有最后一
案例的结尾处缺少一个中断
。它贯穿了所有案例,只有最后一个案例生效
ofstream Zone1H;
Zone1H.open("TEST.txt");
for(int l=0; l<5; l++)
Zone1H<<LAYOUT[i].x<<" "<<LAYOUT[i].y<<endl;
for(int i=0;i您在每个案例的结尾处缺少一个中断
。它贯穿了所有案例,只有最后一个案例生效
ofstream Zone1H;
Zone1H.open("TEST.txt");
for(int l=0; l<5; l++)
Zone1H<<LAYOUT[i].x<<" "<<LAYOUT[i].y<<endl;
for(int i=0;i您需要查看break
语句。这在切换语句时非常重要。如果没有break,它会将其中一个语句求值为true,并继续查看其余的情况。如果在找到正确的大小写时为每个语句添加一个break,它将“break”退出开关,继续循环中的下一个数字您需要查看break
语句。这在涉及开关语句时非常重要。如果没有break,它会将其中一个语句计算为true,并继续查看其余的情况。如果在每个语句中添加break,当它找到正确的大小写时,它将l从开关中“中断”并继续循环中的下一个数字每种情况结束时的中断会将您带出开关语句并返回到for循环的顶部,这样您就不会遍历开关条件中的其他情况
for(int i=0; i<3; i++){
switch(i){
case 0:
LAYOUT[i].x=i;
LAYOUT[i].y=i;
break; // <-- add this
case 1:
LAYOUT[i].x=funcx(i);
LAYOUT[i].y=funcy(i);
break; // <-- add this
case 2:
LAYOUT[i].x=2*i;
LAYOUT[i].y=4*i;
break; // <-- add this
}
}
for(int i=0;i每种情况结束时的中断会将您带出switch语句并返回for循环的顶部,这样您就不会在switch条件中遍历其他情况
for(int i=0; i<3; i++){
switch(i){
case 0:
LAYOUT[i].x=i;
LAYOUT[i].y=i;
break; // <-- add this
case 1:
LAYOUT[i].x=funcx(i);
LAYOUT[i].y=funcy(i);
break; // <-- add this
case 2:
LAYOUT[i].x=2*i;
LAYOUT[i].y=4*i;
break; // <-- add this
}
}
for(int i=0;iYou忘记在两个案例之间放置break
,因此它将进入下一个案例。此外,switch语句需要有打开和关闭括号。switch(i){…}
这些都不是可选的。您可能会发现这样的问题/答案很有趣:您忘记在两个案例之间放置break
,因此它将进入下一个案例。此外,switch语句需要有开始和结束大括号。switch(i){…}
这些都不是可选的。你可能会发现这样的问题/答案很有趣:就像问题不应该是简单的代码转储,也不应该是答案一样。至少尝试解释一下问题,描述一下如何解决问题以及原因。就像问题不应该是简单的代码转储,也不应该是答案一样。至少尝试解释一下n解决问题,并描述如何解决问题以及原因。