我正在尝试创建一个给我两个随机int的代码。它们应该是偶数,而不是零,并且x / z的提醒应为零。 这是我试过的代码,但有时y == 0。简单的遗漏了吗?
public static void main(String[] args){
int x;
int y=0;
Random test = new Random();
do{
x = test.nextInt((10)+1) *2;
}while(x == 0);
try{
do{
y=test.nextInt(10);
}while(x%y != 0 && y == 0);
}catch(ArithmeticException e){
}
System.out.println(x);
System.out.println(y);
}
答案 0 :(得分:0)
而不是循环和搜索两个匹配的数字,您也可以创建始终具有所需属性的数字:
可以通过生成随机Y(> 0)和random_factor(> 0)来实现第一属性。 X设置为Y * random_factor的乘积。
第二个属性可以通过将X和Y乘以2来实现。
答案 1 :(得分:0)
y = 0是可能的,因为你的.jsx
表示"而x%y不为零且y为零"。
如果while(x%y != 0 && y == 0);
x%y = 0
可以是任何内容,则循环将会中断。
将其更改为逻辑OR。
y
答案 2 :(得分:0)
将您的第一个循环替换为
do{
x = test.nextInt((10)+1) *2;
}while(x == 0);
与
do{
x = test.nextInt((10)+1) *2;
}while(x == 0 || x%2 != 0);
这将确保' x'是偶数和非零。
(2)摆脱你的try-catch块。不需要它。替换它
使用简单的do-while
循环。
do{
y=test.nextInt(10);
}while(y == 0 || y%2 != 0 || x%y != 0);
这将确保y是偶数且非零,并且y是x的整数因子。