int x=1,y=1; ++x||y++; y是多少

 我来答
Gyy_efforts
2012-12-30 · TA获得超过106个赞
知道答主
回答量:6
采纳率:100%
帮助的人:5.9万
展开全部
太坑爹了,回答了那么详细,但等我打完提交时,楼主居然已经把分给别人了,真是无语啊。汗。。。

简化版
答:
||(或运算)只要有一边成立,则为真,继续执行下一语句。执行顺序是,若左边不真时,则再判断右边;若左边为真时,则不再进行判断右边。
所以,++x||y++,判断++x为真时,就不再进行判断(执行)y++。则,++x=2,y++=1;

详细版
一、首先,你要理解!
1、++在变量前面是先加后再进行运算。如int x=1,则++x=2。(运算前与后,其值都是2)
2、++在变量后面是先运算再进行加1。如int x=1,则x++=2。(运算前是1,运算后是2。)

二、理解&&(与运算)与||(或运算)
1、如:++x&&y++,必须左右两边都为真才执行下一语句。
2、如:++x||y++,只要有一边成立,则为真,继续执行下一语句。执行顺序是,若左边不真时,则再判断右边;若左边为真时,则不再进行判断右边。

最后,
由于你的++x||y++的从左到右进行运算的,所以||(或运算)执行到++x为真时(即不为0),则直接停止判断,直接执行下一句。

所以,
++x执行了,前加1;而y++没有执行,则没有加1。即x=2,y=1。
来自:求助得到的回答
帐号已注销
2012-12-30 · TA获得超过3001个赞
知道大有可为答主
回答量:1338
采纳率:75%
帮助的人:1332万
展开全部
y = 1,不变。这是C语言里的所谓“短路”。对多个或运算,若有一个表达式为真,右边的所有表达式都不会再计算。因为++x的结果为2,已经为真,所以右边的y++不用再计算。因为y的结果是1.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
18238836802yjr
2012-12-30
知道答主
回答量:25
采纳率:0%
帮助的人:6.3万
展开全部
y=1,在逻辑表达式的求解过程中,并不是所有的运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才会执行该运算符。,所以此处y=2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-12-30
展开全部
  直接输出y的值:1
追问
y++  不是先把y的值加一后作为y++的结果,得出2吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2008afc
2019-05-04
知道答主
回答量:4
采纳率:0%
帮助的人:2980
展开全部
一、首先,你要理解!
1、++在变量前面是先加后再进行运算。如int x=1,则++x=2。(运算前与后,其值都是2)
2、++在变量后面是先运算再进行加1。如int x=1,则x++=2。(运算前是1,运算后是2。)
二、理解&&(与运算)与||(或运算)
1、如:++x&&y++,必须左右两边都为真才执行下一语句。
2、如:++x||y++,只要有一边成立,则为真,继续执行下一语句。执行顺序是,若左边不真时,则再判断右边;若左边为真时,则不再进行判断右边。
最后,
由于你的++x||y++的从左到右进行运算的,所以||(或运算)执行到++x为真时(即不为0),则直接停止判断,直接执行下一句。
所以,
++x执行了,前加1;而y++没有执行,则没有加1。即x=2,y=1。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式