2016-10-02 7 views
-1

1から100までの乱数の10個の配列を作成する必要がある割り当てがあります。 次に、配列内の数値の数をリストします私は配列を持っていますが、カウンタを追加する方法を理解することはできません。 ここまで私がこれまで持っていたことがあります。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の中に追加するだけです。私はあなたが正確に何を意味するか理解していないが、私はこれを感謝

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

最も簡単なコードIMHOは、次のようになります。

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()); 
関連する問題