2016-03-01 85 views
0

我用「e」變量代替goto! 在我的代碼 「E」 變量是未知嵌套塊中的未知變量java

int e=1; 

while(e==1) 
{ 
    if (now.getMinute() == end_minute && now.getSecond() >= second) break; 
    new java.util.Timer().schedule(new java.util.TimerTask() { 
     @Override 
     public void run() { 
      System.out.println("hello!"); 
      if (now.getMinute() == end_minute && now.getSecond() >= second) e=0; 
     } 
    }, 60000); 
} 

感謝。

+4

Please.format.your.code。謝謝。 – Thomas

+4

除此之外,它看起來像你在'TimerTask'裏的意思是'e = 0'是未知的。那是因爲你創建了一個匿名的內部類,只有當它們被聲明爲final時,才能看到方法局部變量'e'(你不能再改變它們)。 – Thomas

+0

爲了在匿名類中使用局部變量'e',你必須將'e'定義爲final,而'e = 0'不會再起作用。你可能想把它包裝在一個類中,以便能夠修改這個值。 – SomeJavaGuy

回答

0

你可以檢查這個嗎?

package general; 

import java.time.LocalDateTime; 

public class TestTimer { 
public static int e = 1; 

public static void main(String[] args) throws InterruptedException { 
    LocalDateTime now = LocalDateTime.now(); 
    int end_minute = 45; 
    int second = 30; 

    while(e==1) 
    { 

     if (now.getMinute() == end_minute && now.getSecond() >= second) break; 
     new java.util.Timer().schedule(new java.util.TimerTask() { 

      @Override 
      public void run() { 
       System.out.println("hello!"); 
       if (now.getMinute() == end_minute && now.getSecond() >= second) 
        e=0; 
      } 
     }, 60000); 
    } 


} 

}