黑马程序员技术交流社区

标题: if的疑问 [打印本页]

作者: 河边捉虾米    时间: 2016-9-17 21:53
标题: if的疑问
21.        下面程序运行的结果是(   D )
  String str1= “1”, str2=”2”;
  if(str1==str2)
           System.out.println(“ABC”);
  else if(str1<str2)
           System.out.println(“DEF”);
  else
           System.out.println(“GHJ”);

a)        ABC
b)        DEF
c)        GHJ
d)        编译失败


C为什么不对??
作者: Angel若梦    时间: 2016-9-17 22:31
比较的是字符串,字符串不能直接比较
作者: Jerry007    时间: 2016-9-17 22:46
楼上正解
作者: ts5210ts    时间: 2016-9-18 00:37
对,引用类型可以比较是否相等(实际比的是地址值是否相同),不能比较大小。
作者: zhuangshuang123    时间: 2016-9-18 01:03
字符串不能直接去比较
作者: 河边捉虾米    时间: 2016-9-18 12:14
Angel若梦 发表于 2016-9-17 22:31
比较的是字符串,字符串不能直接比较

学到了,真是细节问题,谢谢
作者: changfa    时间: 2016-9-18 12:40
字符串是对象  不是值   
作者: daikaisheng    时间: 2016-9-18 14:29
字符串不能直接比较大小,编译失败,程序就不能运行,自然就没有运行结果了
作者: 毕加索    时间: 2016-9-18 14:36
字符串转化为基本数据类型int类型就可以比较了  come on!
作者: 请叫我院长    时间: 2016-9-18 15:58
得调用String类型的equals方法
作者: 请叫我院长    时间: 2016-9-18 16:00
得调用String类型的equals方法,==比较的是地址值。
作者: litianji2016    时间: 2016-9-18 18:54
字符串不能用“<”,“>”,比!这么比较没有任何意义!首先不知道要比较什么,是长度还是内容?还有当它字符串是两个不同的汉字时,你能说出哪个汉字更大吗?




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