public static void main(String[] args) {
int age = (int) (1 + Math.random() * (120 - 1 + 1));
int i = 1;
while (age >= 30 && age <= 40) {
age = (int) (1 + Math.random() * (120 - 1 + 1));
i++;
}
System.out.println(age + " , " + i);
}
循环的逻辑写错了。
public class Main {
public static void main(String[] args) {
int age = (int) (1 + Math.random() * (120 - 1 + 1));
int i = 1;
while (age <30 || age> 40) {
age = (int) (1 + Math.random() * (120 - 1 + 1));
i++;
}
System.out.println(age + " , " + i);
}
}
这么写代码,当有一个age不在30和40之间时,循环就结束了。而且第2行生成的age如果不在30到40之间,while循环根本不会执行。
参考如下代码(代码功能:生成100个随机数,并输入所有在30到40之间的数)
public static void main(String[] args) {
int age;
int i = 1;
//生成100个随机数,这个100根据你的需要调整
while (i<=100) {
age = (int) (1 + Math.random() * (120 - 1 + 1));
if(age >= 30 && age <= 40)
System.out.println(age + " , " + i);
i++;
}
}
age >= 30 && age <= 40 ,如果age小于30或者大于40不就直接结束了
java循环产生随机数并筛选30岁以上且40岁以下的年龄
public static void main(String[] args) {
int i = 0, age;
do {
age =(int) (1 + Math.random() * (120 - 1 + 1));
i++;
} while (!(age >= 30 && age <= 40));
System.out.println(age + " , " + i);
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!