Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 确定最高和最低数字_Java - Fatal编程技术网

Java 确定最高和最低数字

Java 确定最高和最低数字,java,Java,我目前正在编写一个程序,用户必须输入10个数字,然后输出最高数字和最低数字。我的代码中有错误,但找不到 int highest=0, lowest=0, 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) {

我目前正在编写一个程序,用户必须输入10个数字,然后输出最高数字和最低数字。我的代码中有错误,但找不到

int highest=0, lowest=0, 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;
}         
else if(num < lowest) {             
    lowest = num;
}

System.out.println("Highest number is: " + highest);
System.out.println("Lowest number is: " + lowest);
int最高=0,最低=0,num=0;
扫描仪扫描=新扫描仪(System.in);
对于(int i=0;i最高){
最高=num;
}         
如果(num<最低值){
最低=num;
}
System.out.println(“最大值为:“+最大值”);
System.out.println(“最低数字为:“+最低”);

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

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

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

您应该将两个
条件放入
for
循环中,否则您将只比较最后一个数。和lowest不应设置为0,而应设置为整数。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);
int-highest=Math.MIN\u值;
int lowest=数学最大值;
int num=0;
扫描仪扫描=新扫描仪(System.in);
对于(int i=0;i最高){
最高=num;
}
如果(数值<最低值){
最低=num;
}
}
System.out.println(“最大值为:“+最大值”);
System.out.println(“最低数字为:“+最低”);

您还应该使用2
if
条件,而不是
else if
。如果您只有一个数字,那么很可能您最终会得到类似于
最高值
的值等于您输入的某个数字,而
最低值
仍将等于
数学.MAX_值
。这可能会导致混淆。

您隐式地假设最小值和最大值为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);
               }
        }
}
主类{
公共静态void main(字符串参数[]){
int最高=0,最低=0,num=0;
扫描仪扫描=新扫描仪(System.in);
最高=最低=scan.nextInt();
对于(int i=1;i最高){
最高=num;
}
如果(数值<最低值){
最低=num;
}
System.out.println(“最大值为:“+最大值”);
System.out.println(“最低数字为:“+最低”);
}
}
}

是否有其他方法可以在不使用Integer.MIN\u值和Integer.MAX\u值的情况下获得答案?为什么不使用这些值?嗯,您可以随时将它们内联;-)