Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我希望能够从用户输入终止程序_Java - Fatal编程技术网

Java 我希望能够从用户输入终止程序

Java 我希望能够从用户输入终止程序,java,Java,所以这只是一个教程,我正在通过,但我需要一个问题的答案,我找不到它。我希望能够键入“s”或“stop”(停止或终止程序实际上并不重要)。当它运行项目时。这将扫描输入并读取代码以退出 public class MyFirstApp { public static void main(String[] args) throws InterruptedException { int beerNum = 99; String word = "bottles";

所以这只是一个教程,我正在通过,但我需要一个问题的答案,我找不到它。我希望能够键入“s”或“stop”(停止或终止程序实际上并不重要)。当它运行项目时。

这将扫描输入并读取代码以退出

public class MyFirstApp {

    public static void main(String[] args) throws InterruptedException {
        int beerNum = 99;
        String word = "bottles";

        while (beerNum > 0) {

            if (beerNum == 1) {
                word = "bottle";
            }

            System.out.println(beerNum + "" + word + "of beer on the wall");
            System.out.println(beerNum + "" + word + "of beer");
            System.out.println("take one down");
            System.out.println("Pass it around");
            beerNum = beerNum - 1;

            Thread.sleep(5000);

            if (beerNum > 0) {
                System.out.println(beerNum + "" + word + "of beer on the wall");
            } else {
                System.out.println("No more bottles of beer on the wall");
            }
            }

        }
    }

试试这个,我想应该有用

    import java.util.Scanner;
...
//put this in a method
    Scanner scan = new Scanner(System.in);
    String exitvar = scan.nextLine();
    if (exitvar.equals("exit")){
    System.exit(0);
    }

如果您在控制台上运行它,并且希望它停止对您唱歌,则可以键入ctrl-c以终止应用程序


否则,您将需要实现另一个线程,等待您键入“stop”,该线程可以终止程序。这并不符合这个学习示例。

我不想让人讨厌或诸如此类,但你为什么不这样做?!!!我认为在控制台应用程序中无法做到这一点。如何将其添加到代码中的if语句中?您首先需要读取用户输入才能做到这一点。但是如果你把读取用户输入放在这段代码的任何地方,程序就会等待它。顺便说一句,我的反对票不是不读取用户输入,而是因为在等待读取用户输入的同时,你想/需要写入控制台,即使使用两个线程也是徒劳的。
“stop”。equals(s)
会更好。@ITECH-PLANET当我把代码放进去时,我得到一个错误“无法从类型TextComponent”@hammy745静态引用非静态方法getText()。textField实际上应该是程序中textField的名称。e、 g txtStop.getText().toString();很高兴能帮助您使用漂亮的键盘。:)但是,您不需要其他线程。按照程序的设计方式,看起来你什么都不能输入。这似乎根本不合适。如果要收集输入,可以在主线程的循环中进行。否则,+1再次查看示例,您可以在线程睡眠5000ms时始终检查输入:检查输入并退出;或者sleep 1000s x5。绝望增加了速度——墙上还剩下大约30瓶,我打赌你确实可以很快地键入“停止”。)嗯,我想你可以。但到那时,可能有人甚至不会费心让TaskManager启动并运行了!:)
Sting s = textField.getText().toString();
if("stop".equals(s)){
   System.exit(0);
}else{
   //program continue running
}