Java入门基础及环境搭建
2 Java程序设计基础
2.1 Java标识符和关键字
2.2 Java注释
2.3 Javadoc文档注释
2.4 Java常量
2.5 Java变量声明和变量赋值
2.6 Java变量的作用域
2.7 Java数据类型
2.8 Java数据类型转换
2.9 Java算术运算符
2.10 Java赋值运算符
2.11 Java逻辑运算符
2.12 Java关系运算符
2.13 Java自增和自减运算符
2.14 Java位运算符
2.15 Java条件运算符
2.16 Java运算符优先级
2.17 Java直接量
Java流程控制语句 Java字符串处理 Java数字和日期处理 Java内置包装类 Java数组处理 Java类和对象 Java继承和多态 Java异常处理 Java集合、泛型和枚举 Java反射机制 Java输入/输出流 Java注解
Java 提供了一个特别的三元运算符(也叫三目运算符)经常用于取代某个类型的 if-then-else 语句。 条件运算符的符号表示为“?:”,使用该运算符时需要有三个操作数,因此称其为三目运算符。 使用条件运算符的一般语法结构为: result = <expression> ? <statement1> : <statement3>; 其中,expression 是一个布尔表达式。当 expression 为真时,执行 statement1, 否则就执行 statement3。此三元运算符要求返回一个结果,因此要实现简单的二分支程序,即可使用该条件运算符。
下面是一个使用条件运算符的示例。 int x,y,z; x = 6,y = 2; z = x>y ? x-y : x+y; 在这里要计算 z 的值,首先要判断 x>y 表达的值,如果为 true,z 的值为 x-y;否则 z 的值为 x+y。很明显 x>y 表达式结果为 true,所以 z 的值为 4。
技巧:可以将条件运算符理解为 if-else 语句的简化形式,在使用较为简单的表达式时,使用该运算符能够简化程序代码,使程序更加易读。
在使用条件运算符时,还应该注意优先级问题,例如下面的表达式: x>y ? x-=y : x+=y; 在编译时会出现语法错误,因为条件运算符优先于赋值运算符,上面的语句实际等价于: (x>y ? x-=y : x)+=y; 而运算符“+=”是赋值运算符,该运算符要求左操作数应该是一个变量,因此出现错误。为了避免这类错误,可以使用括号“0”来加以区分。例如,下面是正确的表达式。 (x>y) ? (x-=y): (x+=y); 在程序中声明 3 个变量 x、y、z,并由用户从键盘输入 x 的值,然后使用条件运算符向变量 y 和变量 z 赋值。 实现代码如下: public class Test9 { public static void main(String[] args) { int x, y, z; // 声明三个变量 System.out.print("请输入一个数:"); Scanner input = new Scanner(System.in); x = input.nextInt(); // 由用户输入x的值 // 判断x的值是否大于5,如果是y=x,否则y=-x y = x > 5 ? x : -x; // 判断y的值是否大于x,如果是z=y,否则z=5 z = y > x ? y : 5; System.out.printf("x=%d \n", x); System.out.printf("y=%d \n", y); System.out.printf("z=%d \n", z); 保存程序并运行,运行效果如图 1 和图 2 所示:
图 1  键盘输入58
图 2  键盘输入4 在该程序中,首先输入 x 的值为 58,然后判断 x 的值是否大于 5,显然条件是成立,则 y 的值为 x,即 y=58。接着判断 y 的值是否大于 x,因为 y 的值和 x 的值都为 58,所以该条件是不成立的,则 z=5。再次输入 x 的值为 4,然后判断 x 的值是否大于 5,不成立,则 y=-4;接着判断 y 的值是否大于 x,不成立,则 z=5。

关注公众号「 站长严长生 」,在手机上阅读所有教程,随时随地都能学习。本公众号由 C语言中文网站长 亲自运营,长期更新,坚持原创。

微信扫码关注公众号