2017-09-13 101 views
1

當前我輸入1時,它輸出「待機模式已啓用」以及「待機模式已禁用」,並且每5分鐘循環輸出「待機模式已禁用」。我如何只有「已啓用待機模式」輸出以及輸出「待機模式已停用」只有一次,5分鐘後,我必須輸入1停止從循環輸出

這裏是代碼:

import java.util.Scanner; 
import java.util.Timer; 
import java.util.TimerTask; 

public class StandbyMode { 

    public static void main(String[] args) { 
    Scanner scanner = new Scanner(System.in); 
    System.out.println("Standby Mode"); 
    System.out.println("Press 1 for Standby mode"); 
    int selectedOption = scanner.nextInt(); 
    if(selectedOption == 1){ 
     System.out.println("Standby mode is enabled"); 

    }else { 
     System.out.println("Invalid input"); 

    } 
    Timer t = new Timer(); 
    t.schedule(new TimerTask() { 
     @Override 
     public void run() { 
      System.out.println("Standby Mode disabled"); 
     } 
    }, 0, 300000); 
    scanner.close(); 
    } 

} 

回答

0

你可以您if語句中使用定時器啓動模式:

if(selectedOption == 1){ 
    Timer t = new Timer(); 
    t.schedule(new TimerTask() { 
     @Override 
     public void run() { 
      System.out.println("Standby mode is enabled."); 
     } 
    }, 0, 300000); 
} else { 
    System.out.println("Standby mode is disabled."); 
} 

:必須有一條線在你的高清禁用模式和無效的輸出之間繪製從頭其可以是有點像:

else if(selectedOption==2) { 
    System.out.println("Standby mode is disabled."); 
} else { 
    System.out.println("Invalid input"); 
} 

編輯(後評論)::對於交替模式,則可以使用一個標誌,作爲由計時器顯示的消息之間切換:

if (selectedOption == 1) { 
    Timer t = new Timer(); 
    t.schedule(new TimerTask() { 
     boolean flag = true; 

     @Override 
     public void run() { 
      if (!flag) { 
       System.out.println("Standby Mode Disabled"); 
      } else { 
       System.out.println("Standby Mode Enabled"); 
      } 
      flag = !flag; 
     } 
    }, 0, 3); 
} else { 
    System.out.println("Invalid input"); 
} 
+0

它循環「待機模式已啓用」和「待機模式已禁用」未獲得輸出 – user8605033

+0

@ user8605033您是否打算在這兩者之間切換輸出?我假設他們是不同的模式。 – nullpointer

+0

我想輸出「待機模式啓用」和「待機模式禁用」(5分鐘後)。道歉,如果我的問題不清楚 – user8605033