黑马程序员技术交流社区

标题: 三元运算符 [打印本页]

作者: 伯爵公子    时间: 2015-7-15 08:39
标题: 三元运算符
见过两个代码
一个return a>b?a:b
一个int c = a>b?a:b

在第二个中,是先执行 c = a, 然后比较c>b哪,还是,a>b,如果大于将返回值a 赋给c,那种情况对?
作者: 伯爵公子    时间: 2015-7-15 08:41
求解答,越快月好呀
作者: 懒人不是懒    时间: 2015-7-15 08:43
如果按照运算符的优先级来看的话,是先比较再赋值。
作者: 伯爵公子    时间: 2015-7-15 08:45
懒人不是懒 发表于 2015-7-15 08:43
如果按照运算符的优先级来看的话,是先比较再赋值。

恩,谢谢赐教
作者: 懒人不是懒    时间: 2015-7-15 08:47
懒人不是懒 发表于 2015-7-15 08:43
如果按照运算符的优先级来看的话,是先比较再赋值。

刚试了试,确实是先比较,再赋值。
class var
{
        public static void main(String[] args){
        int a=4,b=5;
        int c= a>b?a:b;
                System.out.println("c="+c);}
}
作者: 蔡锐    时间: 2015-7-15 08:52
第二个是先比较a和b的大小,把较大的 赋给c
作者: Nemo    时间: 2015-7-15 09:06
a>b,赋值运算符,也就是=的优先级相当的低,一般都是最后执行
作者: 朝着梦想使劲冲    时间: 2015-7-15 12:36
>的优先级大于=
作者: 伯爵公子    时间: 2015-7-17 13:45
朝着梦想使劲冲 发表于 2015-7-15 12:36
>的优先级大于=

看来我得补补这块知识
作者: 朝着梦想使劲冲    时间: 2015-7-20 13:11
伯爵公子 发表于 2015-7-17 13:45
看来我得补补这块知识

共同努力
作者: 白羽蘇芳    时间: 2015-7-20 13:17
这肯定是先比较啊  结果为true把a赋值给c  结果为false把b赋值给c
作者: 王文辉    时间: 2015-7-20 17:18
先比较a>b?若a大,将a赋值给c;若b大,将b赋值给c
作者: 王庆艳    时间: 2015-7-20 22:07
必然是把返回值赋给C
作者: chad8753    时间: 2015-7-20 22:22
先是条件判断 再赋值给c
作者: 伯爵公子    时间: 2015-7-21 08:36
白羽蘇芳 发表于 2015-7-20 13:17
这肯定是先比较啊  结果为true把a赋值给c  结果为false把b赋值给c

说的对,这可是经常会用到的知识点。
作者: 伯爵公子    时间: 2015-7-21 08:37
王文辉 发表于 2015-7-20 17:18
先比较a>b?若a大,将a赋值给c;若b大,将b赋值给c

是呀,这个分析很对
作者: 伯爵公子    时间: 2015-7-21 08:38
王庆艳 发表于 2015-7-20 22:07
必然是把返回值赋给C

这个知识点比较重要的,记住哈
作者: 伯爵公子    时间: 2015-7-21 08:39
chad8753 发表于 2015-7-20 22:22
先是条件判断 再赋值给c

是呀,已经记住了
作者: zzy1990    时间: 2015-7-21 09:13
谢谢分享,学习了
作者: fantianfei    时间: 2015-7-21 09:19
学习了。。。
作者: Happe_Sun    时间: 2015-7-21 09:40
都可以呀





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