24小时热门版块排行榜    

查看: 538  |  回复: 3

晴间多云

木虫 (正式写手)

[求助] 有关switch语句的一些疑问 已有2人参与

switch ( expression )
   case expression : statement
   [default  : statement]
我看书上说:如果不是某个case的情况,则执行default,我写了一个有关统计元音字母的程序,如下图所示:
为什么i的值不是12呢,若输入的不是元音字母,i的值才增加吗?

有关switch语句的一些疑问
捕获.JPG
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

在生活中要学会独立思考和解决一些问题!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ready_man

金虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
晴间多云: 金币+15, ★★★★★最佳答案, 真的是啊,谢谢啦O(∩_∩)O 2014-12-25 12:50:28
每一个case执行完了,没有break就会继续往下执行。。。如果想输出12, 可以在上面的case后加上break。。应该就行了
IT
2楼2014-12-24 23:19:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sanshuiheyi

铁虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
晴间多云: 金币+5, 有帮助, 谢谢! 2014-12-25 12:51:33
执行结果没错啊,abcdeiou一个8个和吧,1~9一共9个吧,加起来不就是17个么,要知道char类型的本质是unsigned int类型,所以你输入的1~9也会在default里统计的,应该是这样的。
3楼2014-12-25 09:05:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sanshuiheyi

铁虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
晴间多云: 金币+10, ★★★很有帮助, 解释的很详细,谢谢! 2014-12-25 12:52:13
还有就是正如二楼说的,你的case后面没加break,所以,++i总是会被执行,在++sum;后面加个break;就可以正确统计原因字母,而i统计出来的就不是所有字母了,而是你输入的非元音字母,也就是12,你可以试试。
4楼2014-12-25 09:08:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 晴间多云 的主题更新
信息提示
请填处理意见