Java 入门练习--三数排序

210 阅读1分钟

题目:输入三个数,按从小到大输出

工具: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);
	     }