当我输入我的数字时,只读取最小值

时间:2014-12-13 16:54:34

标签: java arrays loops max min

在我的代码中,我试图输入它所做的10个数字并输出它所做的最小数字并输出它没有的最大数字,我试图改变<和>在最大算法中但它不起作用。有没有人对我该做什么有任何建议? 提前致谢

import javax.swing.JOptionPane;
public class Results {
    public static void main (String args []){

        //Variables
        //Set up Array
        int arr[]; //Declare Array
        arr = new int [10];
        int min = Integer.MAX_VALUE;
        int max = Integer.MIN_VALUE;;

        //Input
        //Set up loop

        //Quiz 1
        for(int i = 0; i<10;i=i+1){
        arr[i]=Integer.parseInt(JOptionPane.showInputDialog(null, "Please enter a number for quiz 1"));

        }


        //Minimum


        for (int i = 0; i < min; i++) {
            if (arr[i] < min) {
                min = arr[i];
            }
            }

        //Maximum


        for (int i = 0; i > max; i00) {
            if (arr[i] > max) {
            max = arr[i];
            }
            }

        //Output
        JOptionPane.showMessageDialog(null, "The minimum is " +min);
        JOptionPane.showMessageDialog(null, "The maximum is " +max);







        }



    }

1 个答案:

答案 0 :(得分:1)

你的for循环检查最小/最大条件是错误的。因此,如果您有1,2,0这样的数字,并且您试图使用现有代码找到min max,那么循环min将是:

i =0, i<MAX integer value
assign min as 1
i=1, i<1
it will exit and you wont get 0 as output

同样适用于具有最大条件检查的循环。

将for循环更改为:

for (int i = 0; i < arr.length; i++) {
     if (arr[i] < min) {
         min = arr[i];
     }
}

for (int i = 0; i < arr.length; i++) {
    if (arr[i] > max) {
         max = arr[i];
    }
}