我有一个赋值,要求我创建一个包含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
}
使用一个变量来跟踪计数,然后循环遍历数组,检查每个元素并相应地增加计数。
int count = 0;
for (int num : numbers) {
if (num >= 40 && num <= 70) {
count++;
}
}
System.out.println(count);`
我假设您希望将40和70包含在范围内。如果没有,就把条件改成>
和<
。如果您还想打印这些值,您可以在if
语句中添加System.out.println(num)
。
我不明白你到底是什么意思,但我感谢这是解决方案:
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);
}
最简单的代码是:
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());