2013-07-08 34 views
-3

我正在處理Gui程序的一部分,但是我被困在這段代碼中。當用戶點擊一個按鈕時,它會禁用該按鈕(可以工作),但循環根本不起作用。我用了一個while循環,並且讓它做了一個簡單的數學公式。Java雖然循環代碼不起作用

public void actionPerformed(ActionEvent arg0) { 

      Enable.setEnabled(false); 
      Date d = new Date(); 
      int hrs = d.getHours(); 
      int mins = d.getMinutes(); 

      while(1 +1) == 2) { 
        if(hrs == 17 & mins == 30) { 
         Function function = new Function(); 
        } 
      } 

任何想法?

+1

你預計會發生什麼?發生什麼事? – Jeffrey

+0

你想在你的while循環中做什麼? – hexafraction

+0

嗯,我想要一個新的'Function'類的實例。 – FreshCoffee

回答

2

嘗試用

 while((1 + 1) == 2) { 
+0

仍然無法正常工作。 – FreshCoffee

+0

我剛剛檢查了運算符優先級,+高於==,所以沒有括號就沒問題。 [來源](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html) – Marconius

1

你永遠更新hrsmins。除非碰巧在17:30時運行第一次運行這個應用程序,它將永遠不會工作。

while (true) { 
    Date d = new Date(); 
    int hrs = d.getHours(); 
    int mins = d.getMinutes(); 

    if(hrs == 17 && mins == 30) { 
     Function f = new Function(); 
    } 
} 

注意:這稱爲busy waiting。使用它通常是不好的做法。

0

這不會做任何事,除非它發生在5:30時,他們點擊按鈕?只是永遠循環?

如果你想確保你進入你的循環爲什麼不直接使用while(true)

1

這將是一個無限循環,它永遠不會結束,因爲循環條件始終爲真。因此你可以修改你的while循環如下while(true)。但請記住,有一個無限循環是一個壞的編碼練習。

0

while(true)爲我工作。嘗試這個。