数组中小于或等于的元素数

时间:2021-08-02 00:38:46

标签: java arrays

public class ArrayExercise
{
    public static void main(String [] args)
    {
        int arr[] = { 3, 4, 14, 32, 45, 61, 32, 18, 9, 38, 99, 42 };
        int sentinel = 42;
        int count = 0;
        ;

        for (int i = 0; i < arr.length; i++) {

            if (arr[i] != sentinel) {
                count++;
            }
            else {
                break;
            }
        }

        System.out.println(count);
    }
}

我想用 42 计算数组中所有小于 23 的元素 作为比较值(Sentinel Value)。我被困在如何实现比较的第二部分。目前我的数组只计算不是 42 的元素数。

预期输出为 5,因为 42 之前的元素中有 5 个小于 23(3、4、14、18 和 9)。从我的代码观察到的输出是 11。

通过哨兵值我的意思是如果数组没有完全填满,当遇到哨兵值 42 时,计数仍应停止。示例:

int arr[] = { 3, 14, 32, 45, 18, 38, 42, 0, 0, 0, 0, 0 };

这里的预期输出是 3,因为 42 之前的元素中有 3 个小于 23(3、14 和 18)。

1 个答案:

答案 0 :(得分:0)

您只需要在第一个语句中添加第二个 if 语句即可。

取而代之的是:

if (arr[i] != sentinel) {
    count++;
}
else {

做这样的事情:

if (arr[i] != sentinel) {
    if (/* put condition here */) {
        count++;
    }
}
else {

我确定您可以在最里面的 if 中填写缺少的条件。