黑马程序员技术交流社区

标题: 复习的时候关于遇到三元运算符的一个小问题。 [打印本页]

作者: 我为你着迷    时间: 2014-5-30 22:20
标题: 复习的时候关于遇到三元运算符的一个小问题。
本帖最后由 我为你着迷 于 2014-5-30 22:21 编辑
  1. class OperateDemo
  2. {
  3.                 public static void main(String[] args)
  4.                 {
  5.                                 int num=60;
  6.                                 
  7.                         
  8.                            //获取60的最低4位,通过&15;
  9.                                 int n1=num&15;
  10.                                 
  11.                                 System.out.println(n1>9?(char)(n1-10+'A'):n1);
  12.                                 
  13.                                 
  14.                                 //要获取下一组四位,将60右移4位。
  15.                                 int temp=60>>>4;
  16.                                 
  17.                                 //对temp值进行最低四位的获取。
  18.                                 int n2=temp&15;
  19.                                 
  20.                                 System.out.println(n2>9?(char)(n2-10+'A'):n2);
  21.                                 
  22.                 }
  23. }
复制代码
大家好,我想问下这句话System.out.println(n1>9?(char)(n1-10+'A'):n1);老师是不是写错了啊,应该是System.out.println((n1>9)?(char)(n1-10+'A'):n1);这样写吧.是不是少写了一个括号呢?因为三元运算符的格式是(条件表达式)?表达式1:表达式2;

作者: luoanjade    时间: 2014-5-30 22:23
你这个括号加不加都一样的!
作者: 小坏坏    时间: 2014-5-30 22:41
本帖最后由 小坏坏 于 2014-5-30 22:49 编辑

没错,加个(char)自是为了将返回的结果转化为char类型。
作者: LFW    时间: 2014-5-31 02:27
小坏坏 发表于 2014-5-30 22:41
没错,加个(char)自是为了将返回的结果转化为char类型。

你看清楚问题再答好吧。。。
作者: LFW    时间: 2014-5-31 02:45
我也特地再去看了一遍,发现毕老师不止一次n1>9?这样写条件表达式;简单调试了几个代码都没有区别。因此,我个人觉得,?前的一段代码一定是被虚拟机识别的、必定有布尔型结果的 条件。有无括号,问号前的都会被视为条件进行判断。
作者: java木    时间: 2014-5-31 05:33
我觉得你加那个括号和不加都不影响运算
作者: jiang_ming    时间: 2014-5-31 07:48
加不加括号没影响的
作者: 我为你着迷    时间: 2014-5-31 07:55
非常感谢大家    我知道了  大家辛苦了  {:3_53:}
作者: 会说话的木头    时间: 2014-6-23 10:59
我为你着迷 发表于 2014-5-31 07:55
非常感谢大家    我知道了  大家辛苦了

我也看到这个地方,在myeclipse 里面编译报错,但是在editorplus 用dos命令行 运行没错,




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