-1
下面的代碼是在回答關於編碼蝙蝠一個問題:http://codingbat.com/prob/p101372爲什麼這個遞歸方法的順序很重要?
此解決方案...
public String changeXY(String str) {
if (str=="") {return "";}
else if (str.substring(0,1).equals("x") && str.length()<2) { return "y";}
else if (str.substring(0,1)!="x" && str.length()<2) {return str;}
else if (str.substring(0,1).equals("x") && str.length()>1) {return "y" + changeXY(str.substring(1));}
else if (str.substring(0,1)!=("x")) { return str.substring(0,1) + changeXY(str.substring(1));}
return changeXY(str);
}
但是,爲什麼沒有解決,如果我只是重新排列if語句工作? 當然,順序無關緊要。有人可以解釋爲什麼在這種情況下訂單很重要/無論如何。
因爲您的條件並不相互排斥。考慮'if(x == 1 && y == 2){print(「Foo」); } else if(x == 1){print(「Bar」); }'。 – 2015-01-26 22:15:43
很可能是因爲你正在用'!='比較字符串。此外,你的測試是多餘的 – Dici 2015-01-26 22:18:22
如果不是'!='我會畫一張[卡諾圖(http://arn.wikipedia.org/wiki/Karnaugh_map)。 – Sylwester 2015-01-27 01:09:15