3 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊
你的代碼永遠(yuǎn)不會(huì)像它寫的那樣離開 while 循環(huán)。
改成這樣,
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貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
首先,您是說無論條件是否滿足,您都希望它退出 JVM,這會(huì)使 while 循環(huán)變得無用,因?yàn)榈谝淮蔚鷮⒈WC任何一種情況的終止(以及您目前擁有它的方式將使您卡在循環(huán)中并且永遠(yuǎn)不會(huì)執(zhí)行以下行),因此您可以完全刪除它。
其次,您需要在 java 中的 if 子句中的布爾語句周圍加上括號(hào)。
你想為你的方法做的事情可能看起來更像這樣
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貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊
在您的支票中,您正在使用“=”分配操作數(shù)分配 MerkleManager.sMerkleRoot 的值。
相反,您應(yīng)該檢查“==”或“!=”操作數(shù)以比較對(duì)象引用。
public void run() {
while (true) {
}
if MerkleManager.sMerkleRoot != null
{
} else {
}
System.exit(0);
}
添加回答
舉報(bào)