2014-02-07 103 views
0

我正在嘗試創建一個程序,該程序作爲「數學幫助計算器」工作,並提出問題。我在計算器上有一個按鈕來問你一個新問題,我希望能夠最多提出十個問題。所以我想,爲什麼不做一個for循環,在那裏按鈕提出一個新的問題會產生增量,然後提示新的問題。問題:由於某種原因,除非我在for循環中創建i ++,這是自我。我的程序凍結。沒有語法或運行時錯誤,但Java程序凍結。我想在理論上它會工作,但我做錯了什麼?程序運行中凍結

for(int i = 0; i < 10;){ 
if(e.getSource() == cmdNew){ 
i++; 
} 
+5

如果它們不相等會怎麼樣? –

+0

那麼它仍然是一個被問到的當前問題? – Kalkrin

+1

你的'i ++'似乎在'if'塊中。如果你永遠不會進入'if'塊,'i'將停留在'0'處,'i <10'永遠不會變成'false'。 –

回答

1

您的增量位置不正確。

for(int i = 0; i < 10; i++) { 
    if(e.getSource() == cmdNew) { 

    } 
} 
+0

但是,那麼,即使在按下按鈕之前,循環都會立即發生? – Kalkrin

+0

這意味着您的if語句從不輸入。含義e.getSource()永遠不會像cmdNew一樣 –

+1

謝謝,我能夠解決它。 – Kalkrin

1

您處於無限循環。 (e.getSource() == cmdNew)永遠不會是真的,所以我永遠不會增加,你只是永遠循環。

+0

但是對於我所擁有的代碼,當你點擊分配給cmdNew的按鈕時,是不是會這樣做?它會使我增加一個嗎? – Kalkrin

+0

這似乎不是,對吧?你沒有顯示'e'或'cmdNew'的定義,所以很難判斷它是否正確,但我確信它永遠不會是真的,否則你的循環會終止。 – ansible