如 02-4 所写的那代码,if语句的第二种格式也能完成三目(三元?)运算符可以完成的效果。
所以,大多数情况下,它们可以完成一样的操作。但,也有区别:
区别:
三元运算符能实现的,if语句都可以实现,但反过来就不成立。
因为,当if语句控制的操作是一个输出语句的时候,就不能用三元运算符来实现,
因为,三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。
例子:
[代码]java代码:
?
1 2 3 4 5 6 7 8 | int x = 100;
if(x%2 == 0) {
System.out.println("100 是一个偶数");
}else {
System.out.println("100 是一个奇数");
}
就不能用三元改进:
String s = (x%2 == 0)?System.out.println("100 是一个偶数");:System.out.println("100是一个奇数");; 这样是错误的
|
例子:
获取三个数据中的最大值 , 分别用 if语句 和 三元运算符实现
[代码]java代码:
?
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import java.util.Scanner;
class LianShou{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in); // 创建键盘录入对象
// 录入三个数据
System.out.println(" 请输入第一个数据:");
int a = sc.nextInt();
System.out.println(" 请输入第二个数据: ");
int b = sc.nextInt();
System.out.println(" 请输入第三个数据:");
int c = sc.nextInt();
// 进行判断
int max;
if(a > b)
{
max = a;
}
else
{
max = b;
}
if(max > c)
{
System.out.println(" 最大的数是: " + max);
}
else
{
System.out.println(" 最大的数是: " + c);
}
}
}
|
三元运算符:
[代码]java代码:
?
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 | import java.util.Scanner;
class LianShou{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in); // 创建键盘录入对象
// 录入三个数据
System.out.println(" 请输入第一个数据:");
int a = sc.nextInt();
System.out.println(" 请输入第二个数据: ");
int b = sc.nextInt();
System.out.println(" 请输入第三个数据:");
int c = sc.nextInt();
// 进行判断,三元运算符
int max = (a > b)? a:b;
int max1 = (max > c)? max:c;
System.out.println(" 最大的数是:" + max1);
}
|
原文链接:http://www.apkbus.com/blog-833059-61629.html
打开App,阅读手记