如何在java中生成两个随机整数

时间:2017-01-24 21:50:30

标签: java do-while

我正在尝试创建一个给我两个随机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);

}

3 个答案:

答案 0 :(得分:0)

而不是循环和搜索两个匹配的数字,您也可以创建始终具有所需属性的数字:

  • X必须是Y * [整数]
  • X和Y必须均匀

可以通过生成随机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的整数因子。