switch(ch){
case 1:
case 2:
case 3:
...
}
如果我想让当ch == 1
时程序从运行完case 1
的代码直接跳到case 3
应该怎么做?
阿神2017-04-17 14:32:05
一般遇到這種問題,多半是程式邏輯上有問題了。單就這個問題本身,這樣做就可以:
#include <stdio.h>
int main(void)
{
int i = 1;
switch(i) {
case 1:
printf("case 1\n");
case 3:
printf("case 3\n");
break;
case 2:
printf("case 2\n");
break;
default:
break;
}
return 0;
}
ringa_lee2017-04-17 14:32:05
加個flag,這樣能滿足題主你的需求嗎。 。 。 。
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
bool flag = true;
switch(a)
{
case 1:
{
cout << "hello";
flag = false;
}
if (flag)
{
case 2:
{
cout << "world\n";
}
}
case 3:
{
cout << "heihei\n";
}
}
return 0;
}
再來個goto版本:
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
//bool flag = true;
switch(a)
{
case 1:
{
cout << "hello";
goto here;
}
//if (flag)
//{
case 2:
{
cout << "world\n";
}
//}
here:
case 3:
{
cout << "heihei\n";
}
}
return 0;
}
怪我咯2017-04-17 14:32:05
技術上講 goto
可以搞定
#include <stdio.h>
int main(void)
{
int i = 1;
switch(i) {
case 1:
printf("case 1\n");
goto eleven;
break;
case 3:
eleven: printf("case 3\n");
break;
case 2:
printf("case 2\n");
break;
default:
break;
}
return 0;
}
但同意LS的講法,你程式邏輯有問題。