Java练习:条件表达式语句

返回 Java编程练习目录


条件运算符是Java中唯一的三元运算符(ternary operator),它可以替代简单的if-else语句。

b-e ? exp1:exp2;

1.求值顺序

计算?左边的布尔表达式b-e的值,如果是true,求分号前的exp1的值,并以该值为整个条件表达式的值;如果是false,跳过exp1,求exp2的值并以该值为整个条件表达式的值。

如同计算Math.min(a,b),条件运算符替代简单的if-else语句。

minVal = (a < b) ? a : b;

下面的代码,运行并能够解释答案即可。

    public static void 条件表达式的求值顺序(){        
        int i = 0;
        int k = (i = 1)<0? i+(i = 2)+i:(i = 3)+i;
        System.out.println(k+" "+i); //6 3
    }

2.数据类型

如果exp1和exp2具有相同的类型T,条件表达式的类型为T。

如果exp1和exp2中一个有类型T(byte、short或char),而另一个是int类型的常量表达式,其值又可以用类型T表示,则T为条件表达式的类型。

混合类型的计算,e2和e3被提升之后的类型为条件表达式的类型。

    public static void 条件表达式的type(){
        char x = 'X';
        int i = 0;
        System.out.println(true ? x : 0); //类型为char
        System.out.println(true ? x : -1); //类型为int
        System.out.println(false ? i : x); //类型为int
    }

3.避免啰嗦

    public static void coinFlip(){//抛硬币    
        if (Math.random() < 0.5) System.out.println("字");
        else                     System.out.println("徽");
    }

String s =(Math.random() < 0.5)?"字":"徽"; //这样较好

再例如:

String  str= "Thank you " + (person.isMale() ? "Mr. " : "Ms. ") + person.getName() + "。";




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值