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

如何在java中生成两个随机整数,java,do-while,Java,Do While,我试图创建一个代码,它给我两个随机整数。它们应该是偶数,而不是零,并且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;

我试图创建一个代码,它给我两个随机整数。它们应该是偶数,而不是零,并且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);

}

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

  • X必须是Y*[整数]
  • X和Y必须是偶数
第一个属性可以通过生成随机Y(>0)和随机_因子(>0)来实现。X设置为Y*随机系数的乘积


第二个属性可以通过X和Y乘以2来实现。

Y=0是可能的,因为您的
while(X%Y!=0&&Y==0)表示“x%y不为零且y为零”。
如果
x%y=0
y
可以是任何内容,循环将中断。 将其更改为逻辑或

while(x%y != 0 || y == 0);

从中替换第一个循环

do{
   x = test.nextInt((10)+1) *2;
}while(x == 0);

这将确保“x”是偶数且非零

(2) 摆脱你的试抓障碍。不需要。替换它

使用一个简单的
do while
循环

do{
   y=test.nextInt(10);
}while(y == 0 || y%2 != 0 || x%y != 0);

这将确保y是均匀的、非零的,并且y是x的整数因子。

可能是Thanx的重复,似乎是这样做的!=)
do{
   y=test.nextInt(10);
}while(y == 0 || y%2 != 0 || x%y != 0);