switch case语句 里面嵌套if else语句出现错误,求指导

2024-12-05 17:42:04
推荐回答(3个)
回答1:

你的case内的if中的 getchar()应该只执行一次,用变量保存,如case‘S':改为:

在switch(in)前面加个 char ch;

case 'S':printf("目前无法判断,请输入第二个字符!\n");
ch = getchar();
if(ch=='a')
printf("Saturday.");
else if (ch=='u') //错误因为你这里再用getchar()得到的就是输入的第三个字符了。
printf("Sunday.");
else
printf("输入错误!");
break;

case'T'同理。。。

回答2:

输入1 0
第一次运行:

案例1:

开关(Y)

{0的情况下:一+ +;打破;

案例1:B + +;打破;

}

因为Y = 0,所以运行:0案例:一+ +;打破;

案例1:

开关(Y) BR /> {情况下0:+ +;打破;

案例1:B + +;打破;

}

没有中断,因此继续运行

案例2: + +,B + +;打破;

突破这里出来,所以最终的执行具有A + + A + + B + +;

要得到:

一= 1 ,B = 0

成这样:

案例1:开关(Y)

{0的情况下:一+ +;打破;

案例1:B + + ;打破;

}

突破;

案例2:A + +,B + +;打破;
案例3:A + +,B + +;

回答3:

在case 'S':printf("目前无法判断,请输入第二个字符!\n");case 'T':printf("目前无法判断,请输入第二个字符!\n");后边加一句getchar();就行了