黑马程序员技术交流社区

标题: 一个判断的小问题 [打印本页]

作者: 李贺晓    时间: 2012-10-28 18:37
标题: 一个判断的小问题
String a;
String b;
String max;
String min;
max=(a.length()>b.length())?a:b;
min=(max=a)?b:a;
其中max=(a.length()>b.length())?a:b这句话是不是说当a.length()>b.length()的话,max就等于a,否则max就等于b啊?
但是min=(max=a)?b:a;这一句是起到什么作用的
作者: 李靖    时间: 2012-10-28 18:49
min=(max=a)?b:a;这句话应该是min=(max==a)?b:a;因为?  :是三元运算符,所以?号前必须是boolean型,这样是说如果大值是a,那小的就是b 了,就是取小值的意思
作者: 马良    时间: 2012-10-28 18:57
min=(max=a)?b:a; 你的这句代码中的max=a应该不对吧,三元运算符?:的第一个元应该是一个比较语句max==a,返回的是boolean型的值。

你的代码的意思是比较两个字符串的长度,可以稍微简化一下
String a;
String b;
String max=(a.length()>b.length())?a:b;
String min=(max==a)?b:a;

作者: 王永彬    时间: 2012-10-28 19:01
我刚才用你上面的代码试了一下,我想最后这两句应该是起到一个互换a,b内容的作用,最后得出的结果应是a的长度大,b的长度小。
另外最后一句似乎应该是min=(max==a)?a:b;
不知是否可以帮到你!
作者: 王永彬    时间: 2012-10-28 19:04
哦。最后一句应该是min=(max==a)?b:a;
抱歉,不好意思!
我想两句应该放在一起用,才能起到那种效果!
作者: 种生祥    时间: 2012-10-28 19:10
最后一句用错了
应该是
min=(max==a)?b:a;//括号里要是==,>,<,!=。。。这样的字符





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2