剩余参数的计数

The Count of Remaining Arguments

提问人:gizmo.java 提问时间:9/22/2021 最后编辑:blackbrandtgizmo.java 更新时间:9/22/2021 访问量:148

问:

我需要创建一个采用整数命令行参数的程序。第一个参数是介于 1 和 100 之间的剩余参数的计数(包括 1 和 100)。然后,它从其余参数中打印出输入的小于或等于 50 的数字计数和大于 50 的数字计数。

只有当我在命令提示符中键入 0 或 1 时,代码才有效。任何其他值都返回 ArrayIndexOutOfBoundsException。我想如果我将我的数组设置为“count”,它会返回我在打印代码时输入的数字,但它仍然不起作用。

任何人都可以对我现有的代码块提出建议吗?我是一个新手程序员,所以我不知道从哪里开始。我尝试更改数组值,但不断收到相同的错误。

public class Distribution100 {
  public static void main(String[] args) {

    int count = Integer.parseInt(args[0]);

    int[] array = new int[count];

    int low = 0;
    int high = 0;
    for (int i = 0; i < count; i++) {

      array[i] = Integer.parseInt(args[i]);

      if (array[i] >= 1 && array[i] <= 50) {
        low++;
      } else if (array[i] > 50 && array[i] <= 100) {
        high++;
      }
    }

    System.out.println(low + " numbers are less than or equal to 50.");

    System.out.println(high + " numbers are higher than 50.");

  }

}
Java 数组IndexOutofboundsException

评论

1赞 MC Emperor 9/22/2021
请正确缩进您的代码。

答:

0赞 alonkh2 9/22/2021 #1

这段代码对我有用。请注意,我从您的代码中更改了一行 - 您有 ,我将其更改为 ,因为我从 0 开始,是您的计数,而不是要检查的数字之一。array[i] = Integer.parseInt(args[i]);array[i] Integer.parseInt(args[i + 1]);args[0]

public static void main(String[] args) {

        int count = Integer.parseInt(args[0]);

        int[] array = new int[count];

        int low = 0;
        int high = 0;
        for (int i = 0; i < count; i++) {

            array[i] = Integer.parseInt(args[i + 1]);

            if (array[i] >= 1 && array[i] <= 50) {
                low++;
            } else if (array[i] > 50 && array[i] <= 100) {
                high++;
            }
        }

        System.out.println(low + " numbers are less than or equal to 50.");

        System.out.println(high + " numbers are higher than 50.");

    }

评论

0赞 gizmo.java 9/22/2021
谢谢,alonkh2!但是,不知何故,代码仍然对我不起作用。我不断收到异常错误:(
0赞 gizmo.java 9/22/2021
我现在明白了!我输入的第一个数字是我要键入的介于 1 和 100 之间的数字数。出于某种原因,那只是没有点击我。非常感谢 alonkh2 和 user16320675 的帮助!
0赞 alonkh2 9/22/2021
@gizmo.java这完全没有问题。如果您需要帮助,我们随时欢迎您与我交谈。我在 java 方面不是超级高级,但我知道一两件事,很乐意提供帮助。
1赞 alonkh2 9/27/2021
@gizmo.java没问题,如果你想要我的联系方式或其他东西,我很乐意在将来帮忙
1赞 gizmo.java 9/27/2021
我的代码更进一步了。我即将在我的页面上发布“使用字符串和双精度数组”。你介意看一看吗?