确定最高和最低数字(Java)

我正在编写一个程序,用户必须输入10个数字,然后输出将是最高数字和最低数字。 我的代码有问题但找不到它。 这是我的代码:

int highest=0, lowest=0, num=0; Scanner scan = new Scanner(System.in); for (int i=0; i highest) { highest = num; } else if(num < lowest) { lowest = num; } System.out.println("Highest number is: " + highest); System.out.println("Lowest number is: " + lowest); 

以不同方式初始化您的值:

 int highest = Integer.MIN_VALUE; int lowest = Integer.MAX_VALUE; 

如果将它们初始化为零,则永远不会有低于零的“最高”值或高于零的“最低”值

你应该把你的两个if条件放在for循环中,否则你只会比较最后一个数字。 并且最低值不应设置为0,而应设置为Integer.MAX_VALUE

您的初始化和逻辑存在一些问题:

 int highest=Math.MIN_VALUE; int lowest=Math.MAX_VALUE; int num=0; Scanner scan = new Scanner(System.in); for(int i=0; i<10; i++){ System.out.print("Enter a number:"); num = scan.nextInt(); if (num > highest){ highest = num; } if(num < lowest){ lowest = num; } } System.out.println("Highest number is: " + highest); System.out.println("Lowest number is: " + lowest); 

if条件而不是else if你也应该使用2。 如果您只有一个数字,那么您最终可能会得到类似于highest等于您输入的某个数字的内容,而lowest数字仍然等于Math.MAX_VALUE 。 这可能会引起混淆。

您隐式假设最低和最大为0,现在可能是这种情况,请尝试此代码段。

 class Main{ public static void main(String args[]){ int highest=0, lowest=0, num=0; Scanner scan = new Scanner(System.in); highest = lowest = scan.nextInt(); for(int i=1; i<10; i++){ System.out.print("Enter a number:"); num = scan.nextInt(); if (num > highest){ highest = num; } if(num < lowest){ lowest = num; } System.out.println("Highest number is: " + highest); System.out.println("Lowest number is: " + lowest); } } } 

就这么简单

  public int highestNumber(int... numbers) { int currentHighest = 0; for (int value: numbers) { if (value > currentHighest) { currentHighest = value; } } return currentHighest; } 
  public class HighestValue { public static void main(String args[]){ int highest=Math.min(20,30); int num=0; Scanner scan = new Scanner(System.in); for(int i=0; i<5; i++){ System.out.print("Enter a number:"); num = scan.nextInt(); if (num > highest){ highest = num; } } System.out.println("Highest number is: " + highest); } } 

以下代码对我有用。

  int highest = Integer.MIN_VALUE; int lowest = Integer.MAX_VALUE; int num = 0; Scanner scan = new Scanner(System.in); for (int i = 0; i < 10; i++) { System.out.print("Enter a number:"); num = scan.nextInt(); if (num > highest) { highest = num; } if (num < lowest) { lowest = num; } } System.out.println("Highest number is: " + highest); System.out.println("Lowest number is: " + lowest);