Java 如何修改此代码以按顺序打印3个整数?

Java 如何修改此代码以按顺序打印3个整数?,java,Java,我有一个打印3个整数之间的最大整数的代码,我想对这3个整数进行排序,比如num来自System.in的第三个值 换句话说,您只对较高的值进行排序 if(num1>num) { big=num1; } 将此更改为: if(num1>num) { big=num1; } else { // swap num1 and num int tmp = num; num = num1; num1 = num; } 也改变 if(num2>

我有一个打印3个整数之间的最大整数的代码,我想对这3个整数进行排序,比如num 我想修改我的代码来实现这一点,我该怎么做

import java.util.Scanner;
public class digits {
  public static void main(String[] args) {
    int num = 0;
    int num1 = 0;
    int num2 = 0;
    int big = 0;
    System.out.println("Please insert 3 numbers: ");
    Scanner number = new Scanner(System.in);

    if (number.hasNextInt()) {
      num = number.nextInt();
      big = num;
    }
    if (number.hasNextInt()) {
      num1 = number.nextInt();
      if (num1 > num) {
        big = num1;
      }
    }
    if (number.hasNextInt()) {
      num2 = number.nextInt();
      if (num2 > num && num2 > num1) {
        big = num2;
      }
      System.out.println(big + ">" + num1 + ">" + num);
    } else {
      System.out.println("Error: Invalid Value.");
    }
  }
}

看看你的代码:你选择了三个大数字中最大的一个,但是你从来没有改变num1或num。 因此,您的结果将始终是:更大的数字>来自System.in的第二个值>来自System.in的第三个值

换句话说,您只对较高的值进行排序

if(num1>num)
{
    big=num1;
}
将此更改为:

if(num1>num)
{
    big=num1;
}
else
{
    // swap num1 and num
    int tmp = num;
    num = num1;
    num1 = num;
}
也改变

if(num2>num && num2>num1)
{
    big=num2;
}

试试下面的代码

public static void main(String[] args) {
    System.out.println("Please insert 3 numbers: ");
    Scanner number = new Scanner(System.in);

    Integer[] input = new Integer[3];
    int i = 0;
    while (i != 3) {
        input[i++] = number.nextInt();
    }
    number.close();
    Arrays.sort(input, Collections.reverseOrder());
    StringBuffer sb = new StringBuffer();
    for (Integer a : input) {
        sb.append(a).append(">");
    }
    System.out.println(sb.substring(0, sb.length() - 1));
}

像这样的东西应该有用

import java.util.Scanner; 
public class digits {

public static void main(String[] args)
{
    int[] nums = new int[3];
    int k = 0;
    System.out.println("Please insert 3 numbers: ");
    Scanner number = new Scanner (System.in);

    while (number.hasNext() && k < 3) {
        int i = 0;
        try {
            i = Integer.parseInt(number.nextLine());
        }
        catch (NumberFormatException e) {
            System.out.println("Error: Invalid Value.");
        }
        nums[k] = i;
        k++;
    }
    Arrays.sort(nums);
    System.out.println(nums[2]+ ">" +nums[1]+ ">" +nums[0]);

  }
}

回头看看你的笔记,通读你的课本,然后开始写。稍后,如果你有关于某件事的具体问题,回来问,人们会更愿意帮助你。我们不会帮你做作业,你能写下你的说明书吗。如果可以使用内置排序算法,则可以使用它们。或者您可以编写排序算法。但是我们需要知道解决这个问题的限制条件是什么。我编辑了这篇文章,如果我输入30作为num,25作为num1,20作为num2,它会打印30>25>30,所以有一个问题,我没有找到答案show我能找到第二高的数字吗?
import java.util.Scanner; 
public class digits {

public static void main(String[] args)
{
    int[] nums = new int[3];
    int k = 0;
    System.out.println("Please insert 3 numbers: ");
    Scanner number = new Scanner (System.in);

    while (number.hasNext() && k < 3) {
        int i = 0;
        try {
            i = Integer.parseInt(number.nextLine());
        }
        catch (NumberFormatException e) {
            System.out.println("Error: Invalid Value.");
        }
        nums[k] = i;
        k++;
    }
    Arrays.sort(nums);
    System.out.println(nums[2]+ ">" +nums[1]+ ">" +nums[0]);

  }
}