注册 登录
编程论坛 C++教室

请解释以下switch语句!谢谢!

雪色朝阳 发布于 2010-03-20 10:55, 822 次点击
#include<stdio.h>
main()
{
char c;
int v0=1,v1=0,v2=0;
do{switch (c=getchar())
{

case'a':case'A':
case'e':case'E':
case'i':case'I':
case'o':case'O':
case'u':case'U':v1+=1;

default:v0+=1;v2+=1;
}   

}while(c!='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);

}

请解释一下以上红色部分!
8 回复
#2
xichong2010-03-20 11:38
如果c是元音字母(不区分大小写),则v1自加1
#3
qlc002010-03-20 12:21
楼上正解!
#4
wangjianhui2010-03-20 12:32
2楼说的即是啊
#5
雪色朝阳2010-03-20 14:50
我的意思是说,为什么switch语句不是写成这样的:
            case'a':
            case'A':
            case'e':
            case'E':
            case'i':
            case'I':
            case'o':
            case'O':
            case'u':
            case'U':v1+=1;


而把switch写成
           case'a':case'A':
           case'e':case'E':
           case'i':case'I':
           case'o':case'O':
           case'u':case'U':v1+=1;
这两者这间有什么区别?请详解之!
#6
hahayezhe2010-03-20 16:26
方便你看 写成哪样都一样的
#7
apull2010-03-20 22:20
回复 5楼 雪色朝阳
没有区别。
执行完第一个case里的内容后会继续执行下一个case的内容,直到遇到break或者是结束。
#8
胡马平2010-03-21 05:35
整本书学习吧!看你的代码是学C的吧!书店的书很多的!
#9
雪色朝阳2010-03-21 14:15
回复 8楼 胡马平
整本书都看过啦!只是第一次看见这种switch的使用形式,甚是不解。呵呵!
1