【问题标题】:How to add a counter for a range of values in Java如何在 Java 中为一系列值添加计数器
【发布时间】:2016-10-02 17:40:11
【问题描述】:

我有一个任务要求我创建一个包含 10 个数字的数组,每个数字都是 1 到 100 之间的随机数。 然后我列出了数组中有多少个数字介于 40 和 70 之间。我有数组,但我不知道如何添加计数器。 这是我目前所拥有的。

package javaapplication10;

import java.util.Arrays;

/**
 *
 * @author Ravi
 */
public class JavaApplication10 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int[] numbers = new int[10];
        //Generates 10 Random Numbers in the range 1 -20
        for(int i = 0; i < numbers.length; i++) {
            numbers[i] = (int)(Math.random()*100 + 1);
        }//end for loop
        System.out.println("Numbers Generated: " + Arrays.toString(numbers));

    }
    // TODO code application logic here
}

【问题讨论】:

  • 你的问题不太清楚。你说你想“列出数组中有多少个数字在 40 到 70 之间”,但这没有意义。您要么想要打印数组中有多少在 40 到 70 之间的数字,要么想要列出数组中 40 到 70 之间的所有数字。它是什么?
  • 抱歉,在涉及到代码短语时,我一直忘记具体说明。我想打印数组中有多少个值在 40 到 70 之间。

标签: java arrays netbeans counter


【解决方案1】:

只需要一个变量来跟踪计数,然后循环遍历数组,检查每个元素并相应地增加计数。

int count = 0;

for (int num : numbers) {
    if (num >= 40 && num <= 70) {
        count++;
    }
}
System.out.println(count);`

我假设您希望范围内包含 40 和 70。如果不这样做,只需将条件更改为&gt;&lt;。如果您还想打印这些值,只需在 if 语句中添加 System.out.println(num)

【讨论】:

    【解决方案2】:

    我不明白你的意思,但我感谢这是解决方案:

    public static void main(String[] args) {
        int[] numbers = new int[10];
        int counter = 0;
        // Generates 10 Random Numbers in the range 1 -20
        for (int i = 0; i < numbers.length; i++) {
            numbers[i] = (int) (Math.random() * 100 + 1);
            if(numbers[i] >= 40 && numbers[i] <= 70)
                counter++;
        }// end for loop
        System.out.println("Numbers Generated: " + Arrays.toString(numbers));           
        System.out.println(counter);
    
    }
    

    【讨论】:

    • 非常感谢!这真的很有帮助。我一直认为我需要使用“for”循环,但从未想过使用“if”循环。
    【解决方案3】:

    恕我直言,最简单的代码是:

     System.out.println(Arrays.stream(numbers)
        .filter(i -> i >= 40)
        .filter(i -> i <= 70)
        .count());
    

    这清楚地表明了计算数字的条件。

    但是你甚至不需要数组来做这个统计测试:

    System.out.println(IntStream.generate(() -> 1 + (int)(Math.random() * 100))
        .limit(10)
        .filter(i -> i >= 40)
        .filter(i -> i <= 70)
        .count());
    

    【讨论】:

      猜你喜欢
      • 2019-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多