请高手解释一下 “a=4”时,代码是如何运行的,为什么?
int a;
do
{
printf("Input a:");
cin >> a;
switch(a)
{
case 1:
printf("input is 1\n");
break;
case 2:
printf("input is 2\n");
break;
case 3:
{
printf("input is 3\n");
break;
case 4:
printf("input is 4\n");
break;
}
default:
break;
}
}
while(a != 0);
问题点数:20、回复次数:12Top
1 楼windking21(想玩玩WOW 真的那么难吗)回复于 2006-03-17 14:43:31 得分 0
input:4
case 4:
printf("input is 4\n");
break;
因为a!=0
所以进入循环,不断让输入a值
当a=0时结束
Top
2 楼postren(小虫【宝宝出生,真忙】)回复于 2006-03-17 14:49:55 得分 5
case 3下面的{是无效的,a=4是switch直接跳转到case 4语句Top
3 楼ydfivy(我就是一送外卖的)回复于 2006-03-17 14:52:13 得分 15
好象C语言中的switch语句只要CASE后的常量批配,就执行.
Top
4 楼citywanderer2005(流浪狗)回复于 2006-03-17 14:54:13 得分 0
从case到break之间不需要加{},可能switch语句中只找case关键字而不管有没有{}吧Top
5 楼wangzhi255(阿志)回复于 2006-03-17 15:08:37 得分 0
请教 :
do
{
printf("Input a:");
cin >> a;
switch(a)
里边的
cin >> a;
这句什么意思啊~!!Top
6 楼tommy_zhu()回复于 2006-03-17 15:09:11 得分 0
{} 是有用的,如果此时在 case break之间加入{},则申明的变量只能在{}内可见
“好象C语言中的switch语句只要CASE后的常量批配,就执行.”
这个解释倒是合理,有没有相关的资料?Top
7 楼tommy_zhu()回复于 2006-03-17 15:09:45 得分 0
cin >> a;
向 a 输入数据Top
8 楼tommy_zhu()回复于 2006-03-17 15:14:57 得分 0
有没有谁知道关于case break之间{}的真正意义,编译器是怎么解释那个括号的?
忽略,还是“ydfivy(我就是一送外卖的)”所说的: C语言中的switch语句只要CASE后的常量批配,就执行??
Top
9 楼ydfivy(我就是一送外卖的)回复于 2006-03-17 15:26:25 得分 0
tommy_zhu()
在C专家编程这本书中有这句话.Top
10 楼tommy_zhu()回复于 2006-03-17 16:08:52 得分 0
谢谢!
ydfivy(我就是一送外卖的)Top
11 楼tommy_zhu()回复于 2006-03-17 16:12:04 得分 0
多谢大家Top
12 楼ydfivy(我就是一送外卖的)回复于 2006-03-17 16:12:08 得分 0
C陷进与缺陷这本书好象也有.Top




