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

本帖最后由 我为你着迷 于 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;

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

8 个回复

正序浏览
我为你着迷 发表于 2014-5-31 07:55
非常感谢大家    我知道了  大家辛苦了

我也看到这个地方,在myeclipse 里面编译报错,但是在editorplus 用dos命令行 运行没错,
回复 使用道具 举报
非常感谢大家    我知道了  大家辛苦了  {:3_53:}
回复 使用道具 举报
加不加括号没影响的
回复 使用道具 举报
我觉得你加那个括号和不加都不影响运算
回复 使用道具 举报
我也特地再去看了一遍,发现毕老师不止一次n1>9?这样写条件表达式;简单调试了几个代码都没有区别。因此,我个人觉得,?前的一段代码一定是被虚拟机识别的、必定有布尔型结果的 条件。有无括号,问号前的都会被视为条件进行判断。
回复 使用道具 举报
小坏坏 发表于 2014-5-30 22:41
没错,加个(char)自是为了将返回的结果转化为char类型。

你看清楚问题再答好吧。。。
回复 使用道具 举报
本帖最后由 小坏坏 于 2014-5-30 22:49 编辑

没错,加个(char)自是为了将返回的结果转化为char类型。
回复 使用道具 举报
你这个括号加不加都一样的!

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马