![](/img/trans.png)
[英]Java: Is `while (true) { ... }` loop in a thread bad? What's the alternative?
[英]What is the alternative for while(0) or while(1) in Java?
我正在解决一个面试问题,即编写一种无需使用+运算符即可将两位数相加的方法。
我对算法非常了解,可以在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;
}
我尝试将这段代码转换为Java,但是该算法起作用了,因为a将在某一点变为000,而在while循环中C等于False。 Java的替代方法是什么?
谢谢。
您需要为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;
}
Java没有-与C不同-将0
解释为false
。 如我的评论所述,您必须使用布尔表达式,例如:
while (a != 0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.