如 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