A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Min = (Max == s1)?s2:s1;与Min = (Max == s1)?s1:s2;之间的区别

14 个回复

倒序浏览
这个简单,看一眼就出来了!
如果括号里为真就执行冒号前面的!
不过进一步看你代码,可想而知后面max==s1的话,就有把s1赋值给min,隐含结论为max与min是一样的!
呵呵,突然觉得什么时候自己也是大神了?????????
回复 使用道具 举报
【Min = (Max == s1) ? s2 : s1】
如果Max == s1为true,将s2的值赋值给Min, 否则将s1的值赋值给Min。这是三元表达式,可以用if-esle替换
  1.                 if(Max == s1)
  2.                 {
  3.                         Min =  s2;
  4.                 }
  5.                 else
  6.                 {
  7.                         Min =  s1;
  8.                 }
复制代码


【Min = (Max == s1) ? s1 : s2】
就与上面的相反了,如果Max == s1为true,则将s1的值赋值给Min, 反之将s2的值赋值给Min。

这个样子分析,应该可以理解吧~希望可以帮到你哦。

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

回复 使用道具 举报
yi岁⑨很乖❤ 发表于 2015-4-5 17:54
【Min = (Max == s1) ? s2 : s1】
如果Max == s1为true,将s2的值赋值给Min, 否则将s1的值赋值给Min。这是 ...

这个说法很清晰,但是两个在程序中的结果为什么不一样啊
回复 使用道具 举报
长工射日 发表于 2015-4-5 20:03
这个说法很清晰,但是两个在程序中的结果为什么不一样啊

不同的值赋值给Min,当然结果不一样啦
回复 使用道具 举报
话说 Min = (Max == s1)?s1:s2
max==s1为true的话 min=s1  也就是s1又是max又是min了。
回复 使用道具 举报
本帖最后由 yi岁⑨很乖❤ 于 2015-4-5 21:19 编辑
长工射日 发表于 2015-4-5 20:03
这个说法很清晰,但是两个在程序中的结果为什么不一样啊

我们假设 你的程序中Max == s1为true时;

【Min = (Max == s1) ? s2 : s1】的结果是 将s2的值赋值给Min;  => Min = s2;

【Min = (Max == s1) ? s1 : s2】的结果是 将s1的值赋值给Min;  => Min = s1;

所以,运算结果是不一样的~
【 总之,value = 表达式 ? value1 : value2  
? 问一下表达式为true嘛? true时, value = value1; false时,  value = value2; 】



回复 使用道具 举报 1 0
thoris 发表于 2015-4-5 21:11
话说 Min = (Max == s1)?s1:s2
max==s1为true的话 min=s1  也就是s1又是max又是min了。

这下看明白了,谢谢各位大神
回复 使用道具 举报
yi岁⑨很乖❤ 发表于 2015-4-5 21:13
我们假设 你的程序中Max == s1为true时;

【Min = (Max == s1) ? s2 : s1】的结果是 将s2的值赋值给Min;  ...

这下很清楚了,谢谢啊
回复 使用道具 举报
两个代码的输出结果是相反的,明白了吧。
回复 使用道具 举报
12300123 发表于 2015-4-6 09:45
两个代码的输出结果是相反的,明白了吧。

嗯,明白了,昨天编译的时候老出错
回复 使用道具 举报
第一个是获得最小值;第二个是找到最大值赋给min,都是一个赋值判断的过程!!
回复 使用道具 举报
这种问题完全是出来刷分的。。。
回复 使用道具 举报
这种问题……………………
回复 使用道具 举报
前者 如果Max==1成立,所以 Min就是 s2的值,而后者是 Max==1成立 Min就是 s1的值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马