2017-09-13 187 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