Java中while(0)或while(1)的替代方法是什么?

Ral*_*lph 1 c java bit-manipulation

我正在解决一个面试问题,即编写一个方法,在不使用+运算符的情况下添加两位数.

我非常了解算法,我可以在C中轻松完成.

这是算法,它完美地运作:

int add(int x, int y) {
int a, b;
do {
    a = x & y;           
    b = x ^ y; 
    x = a << 1; 
    y = b;
} while (a);
  return b;
}
Run Code Online (Sandbox Code Playgroud)

我尝试将此代码转换为Java,但是这个算法的功能是因为a将在一个点上变为000,在C中将在while循环中等于False.Java中的替代方案是什么?

谢谢.

ner*_*erd 5

您需要在Java中为条件使用布尔值:

while (a != 0)

编辑(完整代码):

int add(int x, int y) {
int a, b;
do {
    a = x & y;           
    b = x ^ y; 
    x = a << 1; 
    y = b;
} while (a != 0);
return b;
}
Run Code Online (Sandbox Code Playgroud)