题目:输入三个数,按从小到大输出
工具:Java基本语句(输入输出,if语句,三目运算符,Math工具)
方法1:if...else...语句嵌套
此方法是比较直观的方法,通过分支语句一步步的完成判断,最终输出。
编写过程中先整理好思路再写分支条件。 完整代码如下:
void rank01() {
System.out.println("请输入3个数:");
int a = Integer.parseInt(sc.nextLine());
int b = Integer.parseInt(sc.nextLine());
int c = Integer.parseInt(sc.nextLine());
if (a > b) {
if (b > c) { // 此时 a>b b>c,排序完成
System.out.println(a+","+b+","+c);}
else { // 此时 b<a b<c 还需要比较a和c的大小
if (a > c) { // 此时 b<c<a,排序完成
System.out.println(b+","+c+","+a);
} else { // 此时 b<a<c排序完成
System.out.println(b+","+a+","+c);
}
}
}else { // 此时 a<b 还需判断b和c
if (b < c) { // 此时 a<b<c 排序完成
System.out.println(a+","+b+","+c); // a<b<c
} else { // 此时 b>a b>c 还需判断a和c
if (a < c) { // 此时 b>c>a 排序完成
System.out.println(b+","+c+","+a);
} else { // 此时 b>a>c 排序完成
System.out.println(b+","+a+","+c);
}
}
}
}
方法2:用三目运算符求出三个数中的最大值与最小值,输出(最小值,三数的和-最大值-最小值,最大值)
此方法看起来比较简练和直观,注意两个三目运算符嵌套时的细节。
void rank02() {
Scanner sc = new Scanner(System.in);
int a = 0;
int b = 0;
int c = 0;
System.out.println("请输入a:");
a = Integer.parseInt(sc.nextLine());
System.out.println("请输入b:");
b = Integer.parseInt(sc.nextLine());
System.out.println("请输入c:");
c = Integer.parseInt(sc.nextLine());
int max = (a >= b ? a : b) >= c ? (a >= b ? a : b) : c; // 三目运算符得出三个数中最大值
int min = (a <= b ? a : b) <= c ? (a <= b ? a : b) : c; // 三目运算符得出三个数中最小值
System.out.println(min + "," + (a + b + c - min - max) + "," + max);
// 所有数之和减去最大值最小值为中间值
方法3:同方法2思路相同,使用Math.max/Math.min 求出最大最小值,并输出
void rank03() { // rank three numbers.
System.out.println("请输入第一个整数a:");
int a = Integer.parseInt(sc.nextLine());
System.out.println("请输入第二个整数b:");
int b = Integer.parseInt(sc.nextLine());
System.out.println("请输入第三个整数c:");
int c = Integer.parseInt(sc.nextLine());
int max = Math.max(a, b);
int maxPlus = Math.max(max, c);
int min = Math.min(a, b);
int minPlus = Math.min(min, c);
System.out.println(minPlus + "," + (a + b + c - minPlus - maxPlus) + "," + maxPlus);
}