3 回答
TA贡献1796条经验 获得超10个赞
你的代码永远不会像它写的那样离开 while 循环。
改成这样,
public void run() {
while (true) {
if MerkleManager.sMerkleRoot != null{
// do stuff
}else {
// do something else
}
System.exit(0); // if you leave this statement, your code will exit on the first exec
}
TA贡献1836条经验 获得超3个赞
首先,您是说无论条件是否满足,您都希望它退出 JVM,这会使 while 循环变得无用,因为第一次迭代将保证任何一种情况的终止(以及您目前拥有它的方式将使您卡在循环中并且永远不会执行以下行),因此您可以完全删除它。
其次,您需要在 java 中的 if 子句中的布尔语句周围加上括号。
你想为你的方法做的事情可能看起来更像这样
public void run() {
if (MerkleManager.sMerkleRoot != null && MerkleManager.sMerkleRoot == inputRoot) {
System.out.println("You won");
}
else {
System.out.println("You lose");
}
System.exit(0);
}
TA贡献1811条经验 获得超4个赞
在您的支票中,您正在使用“=”分配操作数分配 MerkleManager.sMerkleRoot 的值。
相反,您应该检查“==”或“!=”操作数以比较对象引用。
public void run() {
while (true) {
}
if MerkleManager.sMerkleRoot != null
{
} else {
}
System.exit(0);
}
添加回答
举报