无限循环.Java BigInteger

Spa*_*row 0 java biginteger

我的Java代码中有以下"while"循环.我的代码中的所有变量都是BigIntegers.

BigInteger d=new BigInteger("1");
BigInteger e=new BigInteger("3");
BigInteger phi1=new BigInteger("6336");
while(true)
{
    if(((d.multiply(e)).mod(phi1)).equals(BigInteger.ONE))
        break;
    d=d.add(BigInteger.ONE);
    //System.out.println(d);
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,循环无限执行.但我想在以下条件下添加休息:

if((d*e)%phi1==1)
    break;
Run Code Online (Sandbox Code Playgroud)

我已经转换成BigInteger了

if(((d.multiply(e)).mod(phi1)).equals(BigInteger.ONE))
    break;
Run Code Online (Sandbox Code Playgroud)

我哪里弄错了?任何人都可以告诉为什么循环无限执行?

dev*_*ull 9

6336是一个倍数3,因此你尝试的条件break永远不会成真.

无限循环是不可避免的.