我有一项任务,要求我创建一个包含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
}
答案 0 :(得分:3)
只需要一个变量来跟踪计数,然后遍历数组检查每个元素并相应地增加计数。
int count = 0;
for (int num : numbers) {
if (num >= 40 && num <= 70) {
count++;
}
}
System.out.println(count);`
我假设你想要40和70包括在范围内。如果您不这样做,只需将条件更改为>
和<
。如果您还想打印这些值,则只需在System.out.println(num)
语句中添加if
。
答案 1 :(得分: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);
}
答案 2 :(得分: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());