Java语言怎么不用循环给输入的3个数字排序(相关搜索:if语句)

Java语言怎么不用循环给输入的3个数字排序?用if语句写写不出来了,谁能告诉我思路是什么呢?

参考代码


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入第一个数字:");
        int num1 = scanner.nextInt();

        System.out.print("请输入第二个数字:");
        int num2 = scanner.nextInt();

        System.out.print("请输入第三个数字:");
        int num3 = scanner.nextInt();

        if (num1 > num2) {
            int temp = num1;
            num1 = num2;
            num2 = temp;
        }

        if (num2 > num3) {
            int temp = num2;
            num2 = num3;
            num3 = temp;
        }

        if (num1 > num2) {
            int temp = num1;
            num1 = num2;
            num2 = temp;
        }

        System.out.println("排序结果:");
        System.out.println(num1 + " " + num2 + " " + num3);
    }
}

【以下回答由 GPT 生成】

思路:

首先,我们可以利用if语句和比较运算符来比较三个数字的大小。我们可以假设第一个数字为最小值,然后依次与第二个和第三个数字进行比较,如果发现一个数字比假设的最小值更小,则更新最小值。然后我们再进行第二轮比较,将第二个数字与第三个数字进行比较,同样更新最小值。

代码示例:

import java.util.Scanner;

public class SortThreeNumbers {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入第一个数字: ");
        int num1 = scanner.nextInt();
        System.out.print("请输入第二个数字: ");
        int num2 = scanner.nextInt();
        System.out.print("请输入第三个数字: ");
        int num3 = scanner.nextInt();

        int min = num1; // 假设第一个数字为最小值

        // 比较第二个数字与最小值
        if (num2 < min) {
            min = num2; // 更新最小值
        }

        // 比较第三个数字与最小值
        if (num3 < min) {
            min = num3; // 更新最小值
        }

        // 打印出最小值
        System.out.println("最小值为: " + min);
    }
}

此代码使用Scanner类从命令行中获取输入的三个数字,然后利用if语句和比较运算符找出最小值,最后打印出最小值。这个示例代码并没有对数字进行完整的排序,只是找出了最小值。如果你想对三个数字进行完整的排序,你需要使用if语句进行一系列的比较并进行相应的交换操作。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

比较两次就行了呀

int a;
int b;
int c;
// ...
int maxAB = a > b ? a : b; // 先得到 a 和 b 的最大值
int max = maxAB > c ? maxAB : c;  // 再用 a 和 b 的最大值和 c 比较