2016-10-02 27 views
-1

我有一項任務,要求我創建一個10個數字的數組,每個數字都是1到100之間的一個隨機數。 然後列出數組中有多少個數字40到70之間。我有陣列,但我無法弄清楚如何添加計數器。 這是我到目前爲止。如何在Java中爲一系列值添加計數器

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 
} 
+0

你的問題不是很清楚。你說你想「列出陣列中有多少個數字在40到70之間」,但這沒有意義。您要麼**打印陣列中有多少個**號碼在40到70之間,要麼**要列出陣列中40到70之間的所有數字**。這是什麼? – Bohemian

+0

對不起,當涉及到代碼短語時,我一直忘記具體。我想打印數組中有多少個值在40和70之間。 –

回答

3

只需要一個變量來跟蹤計數,然後遍歷數組檢查每個元素並相應地增加計數。

int count = 0; 

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

我以爲你想要40和70包括在範圍內。如果您不這樣做,只需將條件更改爲><。如果您還想打印這些值,則可以在if語句中添加System.out.println(num)

0

我不明白到底是什麼意思,但我要感謝這是解決方案:

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); 

} 
+0

非常感謝!這真的很有幫助。我一直認爲我需要使用'for'循環,並且從來沒有想過要使用'if'循環。 –

0

最簡單的代碼恕我直言將是:

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());