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

Java中while(0)或while(1)的替代方案是什么?,java,c,bit-manipulation,Java,C,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; } intadd(intx,inty){ INTA,b; 做{

我正在解决一个面试问题,就是写一个不使用+运算符进行两位数相加的方法

我非常了解这个算法,我可以用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;
}
intadd(intx,inty){
INTA,b;
做{
a=x&y;
b=x^y;

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

while(a!=0)

编辑(完整代码):

intadd(intx,inty){
INTA,b;
做{
a=x&y;
b=x^y;

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

while(a!=0)

编辑(完整代码):

intadd(intx,inty){
INTA,b;
做{
a=x&y;
b=x^y;

x=aJava不像C一样将
0
解释为
false
。正如我在评论中所说,您必须使用布尔表达式,例如:

while (a != 0)

Java不像C一样将
0
解释为
false

while (a != 0)

while(x!=0)
while(x!=1)
在java中不能使用
int
s作为条件。必须使用
boolean
while(boolean)
while(a==b)
while(true)
while(x!=0)
while(x!=1)
在java中,不能对条件使用
int
s。必须使用
boolean
while(boolean)
while(a==b)
while(true)