
int x=1,y=1; ++x||y++; y是多少
5个回答
展开全部
太坑爹了,回答了那么详细,但等我打完提交时,楼主居然已经把分给别人了,真是无语啊。汗。。。
简化版
答:
||(或运算)只要有一边成立,则为真,继续执行下一语句。执行顺序是,若左边不真时,则再判断右边;若左边为真时,则不再进行判断右边。
所以,++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。
简化版
答:
||(或运算)只要有一边成立,则为真,继续执行下一语句。执行顺序是,若左边不真时,则再判断右边;若左边为真时,则不再进行判断右边。
所以,++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。
来自:求助得到的回答
展开全部
y = 1,不变。这是C语言里的所谓“短路”。对多个或运算,若有一个表达式为真,右边的所有表达式都不会再计算。因为++x的结果为2,已经为真,所以右边的y++不用再计算。因为y的结果是1.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
y=1,在逻辑表达式的求解过程中,并不是所有的运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才会执行该运算符。,所以此处y=2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-12-30
展开全部
直接输出y的值:1
追问
y++ 不是先把y的值加一后作为y++的结果,得出2吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一、首先,你要理解!
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、++在变量前面是先加后再进行运算。如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。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询