【问题标题】:A static void method named randTest that takes a single integer argument, n一个名为 randTest 的静态 void 方法,它采用单个整数参数 n
【发布时间】:2015-07-26 14:25:15
【问题描述】:

我无法弄清楚这段代码,在 randTest 方法中,我必须声明一个名为 counts 的 10 个元素的 int 数组。这将用于记录 randInt 返回每个可能值的频率,这是我创建的一个静态 int 方法,它生成一个随机整数。

我必须调用 randInt n 次,每次递增与返回值对应的 counts 元素的计数。

这是我迄今为止为 randTest 方法生成的代码:

    public static void randTest(int n){

    int [] counts = new int [10];

    for(int i=0;i<10;i++){
        counts[i] = RandInt();
        System.out.println(counts[i]);
        } 
    }

【问题讨论】:

  • for(int i=0;i&lt;10;i++) 改为for(int i=0;i&lt;n;i++)
  • 你没有做你被要求做的事情。你被要求做的是调用 randInt() N 次(而不是 10 次)。每次调用它时,如果它返回 6(例如),则必须递增 counts[6]。这样,最后,如果你想知道 4 产生了多少次,你可以在counts[4] 中查找。这应该足以帮助您自己弄清楚如何更改代码。
  • 你应该阅读docs可能
  • 那么,这段代码的结果是什么?此外,在处理数组时,您可能希望使用 condensed for 方法(为了方便起见)。

标签: java for-loop count int increment


【解决方案1】:

这是你要找的吗?

我想,您已经将 randTest() 的结果限制为 0 到 9 之间的整数。为了保证,我添加了 IllegalArgumentException。

public static void randTest(int n) throws IllegalArgumentException {
    if ((n < 0 ) || (n > 9)) {
        throw new IllegalArgumentException("Only values between 0 and 9 are accepted.");
    }

    int [] counts = new int [10];

    for(int i=0; i<n; i++) {
        int rInt = RandInt();
        counts[rInt]++;
        System.out.println("Integer of value " + rInt + " was called " 
                            + counts[rInt] + " times so far.");
    } 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-19
    相关资源
    最近更新 更多