Java中三目运算符和if求三个数的最大值
三目运算符
普通版
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
int a;
int b;
int c;
Scanner sc= new Scanner(System.in);
//创建对象
a = sc.nextInt();
b = sc.nextInt();
c = sc.nextInt();
//从键盘输入数据
int tmp = a > b ? a : b;
int result = tmp > c ? tmp : c;
System.out.println("三个数中最大的是 " + result);
sc.close();
}
}
嵌套版
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
int a;
int b;
int c;
Scanner sc= new Scanner(System.in);
//创建对象
a = sc.nextInt();
b = sc.nextInt();
c = sc.nextInt();
//从键盘输入数据
int max = (a > b ? a : b) > c ? (a > b ? a : b) : c;
System.out.println("三个数中最大的是 " + max);
sc.close();
}
}
if语句
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
if (a > b & a > c) {
System.out.println("最大值为" + a);//a大于b和c,a最大
} else if (b > a & b > c) {
System.out.println("最大值为" + b);//b大于a和c,b最大
} else {
System.out.println("最大值为" + c);//c最大
}
sc.close();
}
}
差异:大多数场景可以互相替代,但是如果if选择结构执行的是一个操作,没有返回值,此时不可以被三目运算符所替代。