永发信息网

三目运算符的简单问题

答案:3  悬赏:40  手机版
解决时间 2021-08-24 17:23
  • 提问者网友:喧嚣尘世
  • 2021-08-24 01:13

 

int s=((4==5) ? 7 : ((8+3)>>2));

System.out.println(s);

帮忙分析下这段语句的解答过程 以至于答案为什么是2............

最佳答案
  • 五星知识达人网友:山有枢
  • 2021-08-24 02:12

int  s=((4==5) ? 7 : ((8+3)>>2));


(4==5)->(0)


s=(8+3)>>2=11/2/2=5/2=2


可以理解吧


望采纳

全部回答
  • 1楼网友:玩世
  • 2021-08-24 03:55

换个写法,等价于:

int s; if (4 == 5)  s = 7; else    s = ((8+4)/2)/2; 

因为 4==5 不成立,走else分支,所以结果为:11/2 = 5/2 = 2

  • 2楼网友:拾荒鲤
  • 2021-08-24 03:40
首先4==5结果为false所以?后面的2个结果中之选第2个,对第二个表达式计算过程如下8+3=11,11>>2 等价于11/4=2.75.在JAVA中2.75转化成int型是直接截掉所以是2
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯