Java 停止循环输出

Java 停止循环输出,java,eclipse,Java,Eclipse,当前,当我输入1时,它输出“待机模式已启用”和“待机模式已禁用”,并每隔5分钟循环输出“待机模式已禁用”。如何在输入1后的5分钟内仅输出一次“待机模式已启用”和一次“待机模式已禁用” 代码如下: import java.util.Scanner; import java.util.Timer; import java.util.TimerTask; public class StandbyMode { public static void main(String[] args) {

当前,当我输入1时,它输出“待机模式已启用”和“待机模式已禁用”,并每隔5分钟循环输出“待机模式已禁用”。如何在输入1后的5分钟内仅输出一次“待机模式已启用”和一次“待机模式已禁用”

代码如下:

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();
  }

}

您可以在启用模式的
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");
}

您可以在启用模式的
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");
}

它循环“待机模式已启用”和“待机模式已禁用”未被获取output@user8605033您打算在这两者之间交替输出吗?我假设它们是不同的模式。我想同时输出“待机模式已启用”和“待机模式已禁用”(5分钟后)。如果不是我的问题,我道歉clear@user8605033两者同时出现?这很有帮助。非常感谢。是否可以只使其输出一次而不循环?它循环“待机模式已启用”和“待机模式已禁用”未得到响应output@user8605033您打算在这两者之间交替输出吗?我假设它们是不同的模式。我想同时输出“待机模式已启用”和“待机模式已禁用”(5分钟后)。如果不是我的问题,我道歉clear@user8605033两者同时出现?这很有帮助。非常感谢。是否可以只输出一次而不循环?