java - 尝试进行循环时不断收到 java.util.NoSuchElementException 错误

标签 java

对于一个项目,我必须制作刽子手游戏。一切正常,但我正在尝试制作一个循环,让用户选择再次玩。


import java.util.Scanner;
//this is the main method where I'm trying to add the loop//
public class hangMan {
    public static void main(String[] args) {
        String repeat = "y";
        while (repeat == "y") {
            Scanner sc = new Scanner(System.in);
            String w = randomWord("cat", "kite", "touch", "yellow", "abdomen");
            if (w.equals("cat")) {
                threeword();
            }
            if (w.equals("kite")) {
                fourword();
            }
            if (w.equals("touch")) {
                fiveword();
            }
            if (w.equals("yellow")) {
                sixword();
            }
            if (w.equals("abdomen")) {
                sevenword();
            }
            System.out.println("Do you want to play again? (y/n): ");
            repeat = sc.next();
            sc.close();
        }
    }

如果用户输入“y”进行重复,我期望循环继续重复游戏,如果用户输入任何其他字符,则游戏停止。但是,我不断收到 java.util.NoSuchElementException 错误。如果有人能帮助我创建一个循环并向我解释为什么我所做的事情会搞砸,我将不胜感激。谢谢

最佳答案

  • 在 while 循环之外声明您的 Scanner 对象
  • 将 sc.close 写在 while block 之外,即主花括号末尾之前
  • 不要使用 == ,使用 equals() 函数。请注意 String 的 == 和 equals() 函数之间的区别。

关于java - 尝试进行循环时不断收到 java.util.NoSuchElementException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58677442/

相关文章:

java - 应用程序无法加载 applicationContent.xml。为什么?

Java.util.logger 每天新文件

java - `JNI_OnLoad` 是否总是在主线程中调用?

java - 什么时候必须在子类中定义构造函数?

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

Java Annotations - 寻找 RetentionPolicy.CLASS 的示例

java - Java Set对象可以就地修改吗?

java - 传递一个类并调用它的方法

java - 修复简单的 java 递归代码

java - 对于 MySql DB,在 Hibernate(部署在 JBoss 5.1.0 上)中使用大写(与下划线组合)作为列名时出现奇怪的行为