Java中while(0)或while(1)的替代方案是什么?
我正在解决一个面试问题,就是写一个不使用+运算符进行两位数相加的方法 我非常了解这个算法,我可以用C语言轻松地完成它 这是算法,它工作得非常好: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; 做{
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)
等