黑马程序员技术交流社区
标题:
复习的时候关于遇到三元运算符的一个小问题。
[打印本页]
作者:
我为你着迷
时间:
2014-5-30 22:20
标题:
复习的时候关于遇到三元运算符的一个小问题。
本帖最后由 我为你着迷 于 2014-5-30 22:21 编辑
class OperateDemo
{
public static void main(String[] args)
{
int num=60;
//获取60的最低4位,通过&15;
int n1=num&15;
System.out.println(n1>9?(char)(n1-10+'A'):n1);
//要获取下一组四位,将60右移4位。
int temp=60>>>4;
//对temp值进行最低四位的获取。
int n2=temp&15;
System.out.println(n2>9?(char)(n2-10+'A'):n2);
}
}
复制代码
大家好,我想问下这句话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