今天一直工作數小時,所以我可能會錯過一些愚蠢的東西,但是,在這一點上,我有點盲目與此並尋找解釋這種行爲2在相同的功能返回射擊?
我做了一個問題的例子我有和我找到的解決方案不是一個解決方案。
問題:對於以下函數,我傳遞1作爲shotCount和9作爲倒計時 結果當我調試時,我看到第一個如果運行,然後運行返回2,但隨後其他人也決定運行並且最後返回-1
public int getNextShot(int shotCount, int Countdown)
{
if ((shotCount == 1) && (Countdown != 10)) return 2;
else if (shotCount == 0) return 1;
else return -1;
}
但如果我這樣做(相同的參數),它的工作原理:
public int getNextShot(int shotCount, int Countdown)
{
int res = -2;
if ((shotCount == 1) && (Countdown != 10)) res = 2;
else if (shotCount == 0) res = 1;
else res = -1;
return res;
}
我失去了一些東西在這裏?
謝謝:)
你爲什麼不使用大括號? –
發佈調用此方法的代碼,以及爲什麼你認爲你有「2返回觸發」(這在Java中是不可能的,至少如上所述)。 – jkraybill
你確定你在正確的位置設置斷點嗎?也許你不小心跳過了你的一個return語句,同時在調試器中繼續執行代碼,並且實際上獲得了第二次函數調用?嘗試將收益分解到他們自己的行,並在所有行上設置斷點。 (和Oleg說的一樣 - 使用花括號!這是*總是包含它們的原因之一) –