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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

黑马刘洋

初级黑马

  • 黑马币:0

  • 帖子:16

  • 精华:0

本帖最后由 黑马刘洋 于 2012-6-14 11:01 编辑

class Test2

{

        public static void main(String[] args) {

                int x=3;

                System.out.println( (x>4)?9.9:19.72 );

        }

}
输出的答案是19.72,有点石化了。求解。。。

20 个回复

倒序浏览
因为现在这个8不是整型的 而是  字符串  
回复 使用道具 举报
(x>4)?9.9:19.72
三目表达式啊,X>4不成立,所以结果为:后面的值啊,就是19.72
回复 使用道具 举报
条件表达式?值1:值2
当表达式成立,结果为值1,表达式不成立,结果为值2!
回复 使用道具 举报
晕,3>4为false,肯定输出后面的啊,没有一点错啊?
回复 使用道具 举报
{:soso_e101:}  你想问什么 ?
回复 使用道具 举报
火焱 初级黑马 2012-6-14 11:12:07
7#
三目运算,建议楼主先学习编程基础~
回复 使用道具 举报
其实这是一个类型自动转换。。。。。如果你吧前面的9.9,改为9的话 输出的就是8
回复 使用道具 举报
这个表达式就是
x<y?表达式1,表达式2
当x<y为真的时候,输出表达式1
当x<y为假的时候,输出表达式2
多练习练习就好了  你这个问题很好解决了
回复 使用道具 举报
现在这是正确的啊
回复 使用道具 举报
好吧、我知道了、但是我想我知道哪里没懂了、现在知道了
回复 使用道具 举报
胡大强 发表于 2012-6-14 11:14
其实这是一个类型自动转换。。。。。如果你吧前面的9.9,改为9的话 输出的就是8 ...

这位同学,为嘛将9.9改为9的话,输出的就是8了呢,哪里出现了8?改成9输出的也会是19.72
回复 使用道具 举报
三目运算自己不理解,建议仔细看看
回复 使用道具 举报
这是三元运算符,当表达式的值为真时,输出第一个,为假时,输出第二个,因此答案是正确的
回复 使用道具 举报
胡大强 发表于 2012-6-14 11:14
其实这是一个类型自动转换。。。。。如果你吧前面的9.9,改为9的话 输出的就是8 ...

不是吧?

本帖最后由 黑马刘洋 于 2012-6-14 11:01 编辑


class Test2

{

        public static void main(String[] args) {

                int x=3;

                System.out.println( (x>4)?9.9:19.72 );

        }

}

怎么显示出来8?谢谢指教
回复 使用道具 举报
胡大强 发表于 2012-6-14 11:14
其实这是一个类型自动转换。。。。。如果你吧前面的9.9,改为9的话 输出的就是8 ...

不是吧?

本帖最后由 黑马刘洋 于 2012-6-14 11:01 编辑


class Test2

{

        public static void main(String[] args) {

                int x=3;

                System.out.println( (x>4)?9.9:19.72 );

        }

}

怎么显示出来8?谢谢指教
回复 使用道具 举报
三目(元)运算符:
形式: 表达式1? 表达式2: 表达式3
比如:max = (x>4)? a: b   
(1).运算顺序是这样的:先求表达式1的值,如果值是 true, 则求解表达式2的值,max = a; 若是false ,则max = b;注意:表达式2 可以是数值表达式, 还可以是函数表达  式或者是赋值表达式。
(2).条件运算符的优先级高于赋值运算符,所以是先判断条件,然后在进行赋值运算,表达式一的括号可以不要。
楼主那个结果毫无疑问是正确的。
回复 使用道具 举报
刘馨琪 发表于 2012-6-14 13:50
不是吧?

本帖最后由 黑马刘洋 于 2012-6-14 11:01 编辑

class Test2

{

        public static void main(String[] args) {

                int x=3;

                System.out.println( (x>4)?9.9:8);

        }

}

输出的是8.0
class Test2

{

        public static void main(String[] args) {

                int x=3;

                System.out.println( (x>4)?9:8 );

        }
这输出就是8啊。。。。
你这帖子是不是改过了。。为什么跟我第一次看的数据不一样?

}



回复 使用道具 举报
胡大强 发表于 2012-6-14 14:26
class Test2

{

哦 , 明白啦!呵呵
回复 使用道具 举报
胡大强 发表于 2012-6-14 14:26
class Test2

{

哦 , 明白啦!呵呵
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马