这题C++为什么选B不选A呢? 难道第一个if条件判断里a++使a加一然后再执行下面的语句吗

这题C++为什么选B不选A呢?难道第一个if条件判断里a++使a加一然后再执行下面的语句吗... 这题C++为什么选B不选A呢?
难道第一个if条件判断里a++使a加一然后再执行下面的语句吗
展开
 我来答
戚文柏Ro
推荐于2016-06-01 · TA获得超过336个赞
知道小有建树答主
回答量:400
采纳率:100%
帮助的人:387万
展开全部
int a = 10, b = 0;

if( a++>10 && b++>=0 ) //a++,此时a为10,显然a>10不成立,对于&&运算语句,运算顺序从左至右,当前一个结果为false时,后面的语句不再执行。
//即经过该判断后,a = 11, b = 0; 继续判断下面的else if语句.
{
   cout<<a<<'#'<<b<<endl;
}
else if( a>10 && b--<=0 ) //a = 11 > 0程式成立,执行右边的语句b--<=0,此时b = 0,明显成立,执行其大括号内语句
{
   cout<<a<<'*'<<b<<endl; //输出a、b的值,此时a = 11, b = -1,结果为:11*-1,选择B
}
else
{
   cout<<a<<'&'<<b<<endl;
}
更多追问追答
追问
噢好的
也就是说如果是while(i--)这种类型的无论判断条件是真是假都会减掉1是吗
白菜一颗
2015-01-12 · TA获得超过8915个赞
知道大有可为答主
回答量:3260
采纳率:69%
帮助的人:3571万
展开全部
a++>10因为++在后,所以是先执行a>10这个,然后a再自增1
如果换成++a>10就是先执行a自增1,然后再a>10这个判断了
更多追问追答
追问
然后后来a就会变成11进行elseif里的计算了是吗
追答
对,第一个if先判断,两个都不成立,然后全部自增,到else if里面因为自增过变成11了,就成立了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天下没有容生处
2015-01-12 · 超过10用户采纳过TA的回答
知道答主
回答量:84
采纳率:100%
帮助的人:18.6万
展开全部
不,第一个if语句是错误的,因为a++是先赋值再计算的,也就是说a++等于10
追答
所以第一个if错误
直接看else
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式