2011-12-22 49 views
1

Screen shot of my problem.的Java執行的「如果」塊時條件證明是錯誤的

這幾乎說明了一切。 paneNum爲0.由於指令指針位於if塊內,因此paneNum < 0的測試顯然爲true,函數返回false

任何想法?

+0

如果強制將paneNum轉換爲Integer會發生什麼? – VAShhh 2011-12-22 16:31:43

+0

那個'[^ @(NUL)]'是什麼意思? – 2011-12-22 16:32:43

+1

我懷疑代碼/編譯單元不同步。 – 2011-12-22 16:37:14

回答

1

您正在使用您正在調試的文件的最新版本。你可以認爲你在聲明中,而不是實際存在。此外,在顯示模式下運行,而你在該斷點類似:

System.out.println(paneNum); 
System.out.println(paneNum < 0); 
+0

除了最後一部分,同意你的回答。 'paneNum'是一個基元,所以'paneNum == null'沒有意義。 java int的默認值是0. – dbyrne 2011-12-22 16:36:25

+0

啊是的,我看着NUL,並認爲它是一個整數 – Grammin 2011-12-22 16:37:19

+0

我沒有嘗試打印paneNum <0,但是當我打印paneNum時,它在「paneNum <0 「塊。 – Craig 2011-12-23 18:35:59

2

當時條件最近從像paneNum <= 0改變?我的猜測是,正在執行的代碼和正在調試的代碼之間存在同步問題。

嘗試清理項目並重建它。我懷疑它會正常工作。

+0

此代碼最近未更改。雖然它已經被編譯了幾次,但這是我第一次追蹤它,因爲它不起作用。我嘗試了一次清理和重建,但沒有運氣。結束了與 如果(paneNum> = 0){ } 其他 { 返回 假; } 工作。 :-) – Craig 2011-12-23 18:32:59