黑马程序员技术交流社区
标题:
以下程序段输出是( )
[打印本页]
作者:
几率收割
时间:
2015-6-29 23:27
标题:
以下程序段输出是( )
以下程序段输出是()
int i=0,j=0,a=6;
if ((++i>0) || (++j>0 )) a++ :
System.out.println(“i=”+i+” ,j=”+j+” ,a=”+a);
A.i=0,j=0,a=6 B.i=1,j=1,a=7 C.i=1,j=0,a=7 D.i=0,j=1,a=7
作者:
小骆驼
时间:
2015-6-29 23:31
当然是C了啊
作者:
vilion
时间:
2015-6-29 23:45
我觉得是b
作者:
wx_J25HxI5W
时间:
2015-6-30 00:04
果断C啊,双或短路J不参与运算
作者:
fantianfei
时间:
2015-6-30 09:52
答案应该是c。。。。。。。。。
作者:
汪磊の
时间:
2015-6-30 15:22
答案是C了
作者:
dillinger
时间:
2015-6-30 15:51
选c~
++a>0以后就不判断了
作者:
dragonsoull
时间:
2015-6-30 19:38
(++i > 0) 条件成立, || 短路了,(++j > 0)就不运行了。a++了,所以是C
作者:
路途
时间:
2015-6-30 19:59
分析一下,首先++i>0表达式的执行顺序为,先让i加1然后在和0比较,至于为啥,呵呵记住就行,所以这个结果为true哦,i同时也变成了1;然后++j>0同理为true,但是这句是不会执行的,因为受到运算符||的影响,这个的短路效果导致如果||这个运算符前面的表达式为true,就不会往后执行了,因为无论后面的这个表达式的结果是true还是false,都不会对(++i>0) || (++j>0 )这整个表达式的结果产生影响,但是如果前一个表达式返回false,后面的就会执行了,最终结果取决于后面的,所以j仍然等于0;所以最终的if条件结果为true,执行if语句后面的代码,a加1变成了7;所以最终i=1,j=0;a=7;
作者:
1115302782
时间:
2015-6-30 21:54
答案是C,if语句的判断是或运算因为++i是真所以会造成或短路也就是不执行++j,就往下执行a++,所以i的值加1,j没变,a的值加1
作者:
JJJD
时间:
2015-6-30 22:00
学习啦。。。。
作者:
1千克=1024克
时间:
2015-6-30 22:20
选C ~ ~~
作者:
等你的季节-夏天
时间:
2015-6-30 22:42
答案是c
作者:
samove
时间:
2015-6-30 22:43
上面有大神已经回复过了,我就顶一个C答案吧
作者:
bingyu
时间:
2015-6-30 23:04
短路与 107啦C
作者:
徐家誉
时间:
2015-7-1 00:23
i=1,j=0,a=7 选择C
作者:
qxc1281
时间:
2015-7-1 10:17
答案是C
作者:
wengjialiang
时间:
2015-7-1 15:11
我觉得果断选择C
作者:
fmi110
时间:
2015-7-1 16:32
c 必须的吧
作者:
一口老郭
时间:
2015-7-1 16:56
c没错的吧
作者:
kime
时间:
2015-7-1 21:53
当然是c
作者:
慕容旺财
时间:
2015-7-2 18:00
答案选c 考点1:自增运算符和比较大小的优先级 自增在前面 优先级高于比较大小和赋值 考点2:||是第一个条件为true就不用继续运算了
作者:
jx5785749
时间:
2015-7-2 21:25
果断C啊!双或,左面条件满足!短路右面不执行!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2