C++,case语句的问题

[复制链接]
查看11 | 回复3 | 2012-6-13 10:40:11 | 显示全部楼层 |阅读模式
楼主的问题我分两部分回答吧.(1)首先是case 1的1为什么没有引号。这个是switch()函数的要求格式,传进来的参数是什么类型,case后跟的就是什么类型.这里传进来的整形,所以case 后的1不加引号.加引号的可能就是判断字符类型,case后就加引号.(2)输出结果为什么是4、5,我简单给你走一遍流程吧。首先第一个传进来的i++的值,其实是这时候就是1,因为i=1(这里i++,是先用i的值再加1)。到了第一个case 1:,m=2,n=3。再第一个case 2:,传进switch的++j的值为1(++j,j先+1再用j的值),所以第二个case 1:,m=3,n=4。再第二个case 2:,m=4,n=5。case 3:的时候...
回复

使用道具 举报

千问 | 2012-6-13 10:40:11 | 显示全部楼层
switch中匹配到case值之后,就会一直往下运算,直到遇到break才会跳出switch。在该例中会走到下面部分switch(i++)//后自增,所以会走到case 1{case 1:m++;n++; //m=2,n=3case 2:switch(++j)// 前自增,所以会走到case 1 {case 1:m++;...
回复

使用道具 举报

千问 | 2012-6-13 10:40:11 | 显示全部楼层
int i=1,j=0,m=1,n=2;switch(i++)
//i=1,执行case1{case 1:m++;n++;
//m=2,n=3;没有break语句,继续执行下面语句case 2:switch(++j)//j=1,执行case1 {case 1:m++; //m=3没有break,继续...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行