java的三元运算符

这种运算符比较罕见,因为它有三个运算对象。但它确实属于运算符的一种,因为它最终也会生成一个值。这与本章后一节要讲述的普通if-else语句是不同的。表达式采取下述形式:

布尔表达式 ? 值0:值1

若“布尔表达式”的结果为true,就计算“值0”,而且它的结果成为最终由运算符产生的值。但若“布尔表达式”的结果为false,计算的就是“值1”,而且它的结果成为最终由运算符产生的值。
当然,也可以换用普通的if-else语句(在后面介绍),但三元运算符更加简洁。尽管C引以为傲的就是它是一种简练的语言,而且三元运算符的引入多半就是为了体现这种高效率的编程,但假若您打算频繁用它,还是要先多作一些思量——它很容易就会产生可读性极差的代码。
可将条件运算符用于自己的“副作用”,或用于它生成的值。但通常都应将其用于值,因为那样做可将运算符与if-else明确区别开。下面便是一个例子:

static int ternary(int i) {
return i < 10 ? i * 100 : i * 10;
}

可以看出,假设用普通的if-else结构写上述代码,代码量会比上面多出许多。如下所示:

static int alternative(int i) {
if (i < 10)
return i * 100;
return i * 10;
}

但第二种形式更易理解,而且不要求更多的录入。所以在挑选三元运算符时,请务必权衡一下利弊。

时间: 2024-11-04 13:36:44

java的三元运算符的相关文章

Java用三元运算符判断奇数和偶数的简单实现_java

创建一个类,在该类的主方法中创建标准输入流的扫描器对象,提示用户输入一个整数,并通过扫描器的方法来接受这个整数,然后通过三元运算符判断该数字与2的余数,如果余数为0,说明其是偶数,否则是奇数. 复制代码 代码如下: import java.util.Scanner;public class ParityCheck {    public static void main(String[] args){        System.out.println("请输入一个整数:");    

java的造型运算符(Cast)

"造型"(Cast)的作用是"与一个模型匹配".在适当的时候,Java会将一种数据类型自动转换成另一种.例如,假设我们为浮点变量分配一个整数值,计算机会将int自动转换成float.通过造型,我们可明确设置这种类型的转换,或者在一般没有可能进行的时候强迫它进行. 为进行一次造型,要将括号中希望的数据类型(包括所有修改符)置于其他任何值的左侧.下面是一个例子: void casts() { int i = 200; long l = (long)i; long l2

全面了解javascript三元运算符_javascript技巧

三元运算符: 如名字表示的三元运算符需要三个操作数. 语法是 条件 ? 结果1 : 结果2;. 这里你把条件写在问号(?)的前面后面跟着用冒号(:)分隔的结果1和结果2.满足条件时结果1否则结果2. <script type="text/javascript"> var b=5; (b == 5) ? a="true" : a="false"; document.write(" -----------------------

php 三元运算符实例详细介绍_php实例

三元运算符的功能与"if....else"流程语句一致,它在一行中书写,代码精练.执行效率高.在PHP程序中恰当地使用三元运算符能够让脚本更为简洁.高效.代码的语法如下: (expr1)?(expr2):(expr3); //表达式1?表达式2:表达式3 解释:如果条件"expr1"成立,则执行语句"expr2",否则执行"expr3". <?PHP $a=10; $b=20; $c=$a>$b?($a-$b):(

php中的三元运算符使用说明

今天一个网友在群里发了个题目不难,但是可能会错 复制代码 代码如下: echo $a == 1 ? 'one' : $a == 2 ? 'two' : $a == 3 ? 'three' : $a == 4 ? 'foura' : 'other'; echo "\n"; 输出结果是: <BR> 结果是:four 一开始想不明白,按照我的理解,应该是这样的逻辑: echo ($a == 1 ? 'one' : ( $a == 2 ? 'two' : ( $a == 3 ? '

java的移位运算符

移位运算符面向的运算对象也是二进制的"位".可单独用它们处理整数类型(主类型的一种).左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)."有符号"右移位运算符(>>)则将运算符左边的运算对象向右移动运算符右侧指定的位数."有符号"右移位运算符使用了"符号扩展":若值为正,则在高位插入0:若值为负,则在高位插入1.Java也添加了一种"无符号"右移

java的关系运算符

关系运算符生成的是一个"布尔"(Boolean)结果.它们评价的是运算对象值之间的关系.若关系是真实的,关系表达式会生成true(真):若关系不真实,则生成false(假).关系运算符包括小于(<).大于(>).小于或等于(<=).大于或等于(>=).等于(==)以及不等于(!=).等于和不等于适用于所有内建的数据类型,但其他比较不适用于boolean类型. 1. 检查对象是否相等 关系运算符==和!=也适用于所有对象,但它们的含义通常会使初涉Java领域的人找

java的算术运算符

Java的基本算术运算符与其他大多数程序设计语言是相同的.其中包括加号(+).减号(-).除号(/).乘号(*)以及模数(%,从整数除法中获得余数).整数除法会直接砍掉小数,而不是进位. Java也用一种简写形式进行运算,并同时进行赋值操作.这是由等号前的一个运算符标记的,而且对于语言中的所有运算符都是固定的.例如,为了将4加到变量x,并将结果赋给x,可用:x+=4. 下面这个例子展示了算术运算符的各种用法:   //: MathOps.java // Demonstrates the math

三元运算符-条件(三元)运算符效率问题

条件(三元)运算符 (?:) 条件运算符?: 接受三个操作数,是C# 中唯一的三元运算符. 视情况返回以下两个表达式之一. test ? expression1 : expression2 test 为 true 时返回的表达式expression1 .可能是逗点表达式. test 为 false 时返回的表达式expression2 .可能是逗点表达式. ?: 运算符可以用作 if...else 语句的快捷方式. 条件运算符(三元运算符)效率问题 先来看这段代码: $name = GET('n