用户输入和数组分析

时间:2015-10-05 01:27:36

标签: java arrays

我有一个接受整数数组的CountInRange Java程序,也要求用户输入最小值和最大值。然后输出数组中最小值和最大值之间的元素数。

为什么不起作用?

int [] num ={1, 21, 34, -54, 12, 15, 35};
    int count = 0;
    int i = 0;
    int j = 0;
    int min;
    int max;

    System.out.println("Enter minimum: ");
    min = input.nextInt();
    System.out.println("Enter maximum: ");
    max = input.nextInt();

    for (i = 0; i < num.length; i++){
        for (j = 0; j < num.length; j++) {
            if (num[i] >= min || num[i] <= max) {
                count++;
            }                   
        }       
    }
       System.out.println("There are "+count+" elements whose values fall between the maximum and the minimum value");
}

1 个答案:

答案 0 :(得分:0)

至少不需要内部for循环,你应该摆脱它。

你还需要制作条件而不是或者它应该看起来像这样:

 for (i = 0; i < num.length; i++){
        if (num[i] >= min && num[i] <= max) { //AND INSTEAD OF OR
            count++;
        }                          
    }

您正在测试该数字是否为&gt; = min OR num&lt; = max,这表示如果其中一个为真,则返回true,如果您的限制为min = 4max = 5且{ {1}}它会返回true,因为num = 12