黑马程序员技术交流社区

标题: 三元表达式的应用 [打印本页]

作者: 李朋朋    时间: 2012-7-23 01:39
标题: 三元表达式的应用
三元表达式:表达式1?表达式2:表达式3,在什么情况下应用,应用时对三个表达式有什么要求?
作者: 飞翔的33    时间: 2012-7-23 07:31
在整个表达式不太长的时候,写成三元表达式可以省一些事,不用再写个if()条件语句。三元表达式的第一个表达式为条件,如果为真,变量的值就为第二个表达式的值,如果是假,就为第三个表达式的值。
作者: 徐帅    时间: 2012-7-23 07:48
本帖最后由 徐帅 于 2012-7-23 08:10 编辑

在比较简单的表达式语句中使用三元运算符,三元运算符比if else 语句更简洁不过
当表达式较复杂时,三元运算符的可读性就变得很差,
当然对三个表达式的使用要求:
表达式1 可以是任意类型,但返回值必须是boolean型,对于表达式2 和表达式3,使用时就应该注意
应该保证他们的值类型一致,因为混合类型的计算会引起结果的混乱,其实是有类型的转换问题
public void Test(){
int num = 5; char ch = A;
System.out.println(true? : num : ch);
System.out.println(false? : num: ch);
}
打印结果是5,和65;
第二个是A的Ascii码值。
这里是类型的提升,含有其他double,byte,也一样,在不同类型的计算中,类型较低的会被转化
类型较高的类型。
作者: ARMdong    时间: 2012-7-23 07:49
一般情况下能用if-else实现条件判断的时候就可以用三元表达式:表达式1?表达式2:表达式3来替代了!
作者: 李宏利    时间: 2012-7-23 13:16
在表达式boolean-exp ? value0 : value1 中,如果“布尔表达式”的结果为true,就计算“value0”,而且这个计算结果也就是操作符最终产生的值。如果“布尔表达式”的结果为false,就计算“value1”,同样,它的结果也就成为了操作符最终产生的值。




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