Java 为什么System.out.println(字符串)不打印任何内容?

Java 为什么System.out.println(字符串)不打印任何内容?,java,string,Java,String,我的JavaIDE中有一些代码,我相信它支持控制台。我以前使用过java,知道其中的细节。然而,我以前从未遇到过这个问题。我的代码如下所示: Scanner scanner = new Scanner(System.in); int choice = scanner.nextInt(); System.out.println("Choose a class."); TimeUnit.SECONDS.sleep(10); System.out.printl

我的JavaIDE中有一些代码,我相信它支持控制台。我以前使用过java,知道其中的细节。然而,我以前从未遇到过这个问题。我的代码如下所示:

    Scanner scanner = new Scanner(System.in);
    int choice = scanner.nextInt();

    System.out.println("Choose a class.");
    TimeUnit.SECONDS.sleep(10);
    System.out.println("Press 1 for the a class.");
    TimeUnit.SECONDS.sleep(10);
    System.out.println("Press 2 for the b class.");
    TimeUnit.SECONDS.sleep(10);
    System.out.println("Press 3 for the c class.");
    TimeUnit.SECONDS.sleep(10);

    switch(choice) {
        case 1:
            playerClass.chosenClass = "a";
            break;
        case 2:
            playerClass.chosenClass = "b";
            break;
        case 3:
            playerClass.chosenClass = "c";
            break;
        default:
            System.out.println("Null class. Please press 1-3 to choose a player class.");
    }
}

我有所有的导入,playerClass类确实存在。问题是System.out.printlnString不工作。

您在接受输入后打印提示。由于您还没有看到提示,您可能没有键入任何输入。所以你永远无法通过Scanner.nextInt


您的代码没有意义。

您可能需要将逻辑设置为:

System.out.println("Press 1 for xx, 2 for xx, or 3 for xx");

if(scanner.hasNext()){
    choice = scanner.Int();
}

if(choice == 1){
     //do whatever;
}
else if(choice == 2){
     //do whatever;
}

我可能不太理解你的问题,但我认为你需要确保一切井然有序。

明白,不要使用Scanner类。顺便说一句,我不需要你告诉我我的代码没有意义。因为它没有。我知道。这就是我来这里的原因。想想看。我真的会认为如果电脑不能阅读我的代码,我的代码就完全有意义吗?我只是在发帖前写的。我以前用过java,知道它的来龙去脉->它似乎在来龙去脉之间遗漏了什么。在问新问题之前,请确保阅读指导。也就是说,对于这个问题,演示问题的两行代码可能会在不提问的情况下向您说明问题所在。明白了。但不能删除。而且,Sundararaj,是的,有些东西可能是。我已经有一年没有使用Java了。我想这是一种技能,如果不使用,它会随着时间的推移而退化。是的。这就是我所做的,正如EJP所展示的,它确实有帮助。虽然你似乎对它不那么挑剔。顺便说一下,谢谢。比EJP更不重要。