C++ 问题 急急急急急!!!!

intn=10;switch(n){default:++n;case9:n-=1;break;case10:n-=1;case11:n--;case12:n++;}n的值... int n=10;
switch(n)
{
default: ++n;
case 9: n-=1;break;
case 10: n-=1;
case 11: n--;
case 12: n++;
}
n的值输出多少??能否解释一下,default中的++n;和case 11的n--,case 12的n++,的区别是什么??
如果在case11后加个break、,那n的值是输出多少呢?
展开
 我来答
shb8845369
2014-05-21 · TA获得超过280个赞
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:165万
展开全部

n的值输出是 9

首先switch结构中, case 10, case 11 和case 12没有break语句,那么n=10的情况下,case 10, case 11 和case 12下面的语句都会执行一次,直到遇到函数结束。

下面是VC6下单步运行下 case的执行情况:

qdx102
推荐于2016-08-18 · TA获得超过107个赞
知道答主
回答量:75
采纳率:100%
帮助的人:72.3万
展开全部
n输出的值是9。
因为switch语句中没有break,所以,会一直执行到swith语句快尾部。

++n 对变量n的值进行加法运算,即n=n+1,然后返回n的值。

n-- 先返回n的值,然后再对变量n进行减法运行,即n = n - 1: 。
n++ 先返回n的值,然后再对变量n进行加法运算,即n=n + 1。

这个就是++/--前缀和后缀的区别。上面的例子中,用前缀和后缀得到的结果都是一样的。

以下是一个例子:

#include <stdio.h>

int main()
{
int n = 10;

// 输出11,因为先对n进行+1运算,在作为printf()函数的参数, n = 11
printf("%d \n",++n);

//n的值现在是11
printf("%d \n",n);

// 输出是11,因为先把n的值最为printf()的参数,然后对n进行+1运算,n=12
printf("%d \n",n++);

//n的值现在是12
printf("%d \n",n);

//--和++类似,你可以自己写代码厕所

return 0;

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
堵寄灵kO
2014-05-21 · TA获得超过2370个赞
知道小有建树答主
回答量:588
采纳率:100%
帮助的人:465万
展开全部
n的值输出为8,如果循环内条件都不满足就执行default,++n是自加1然后再使用,n--是使用后再自减1,n++是使用后再自加1.
追问
非常感谢您的回答!!++n,和n++的含义我明白,但是在该程序中我就不会用了。。
由于case 10后没有break,因此会继续往case11,case12下运行,那如果在case 11中加个break,那你的值是多少呢?是输出自减1前的值9呢,还是输出自减1后的值8呢?
追答
输出是10
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式