Scanner scanner = new Scanner(system.in);
String input = new String();
while(!input.equalsIgnoreCase("stop")) {
input = scanner.nextLine();
}
为什么这不起作用?循环永远持续。我以前使用过这种方法一百万次,现在它不起作用。
编辑**
好的,我正在使用 JGrasp(因为这是我的教授希望我们使用的),当我在 netbeans 中尝试它时,它运行良好......
编辑2**
首先,我不确定这是否是问题,但在我的代码中,我在主扫描仪扫描仪 = new Scanner(file); 的开头有类似的东西。后来像这个扫描仪 = new Scanner(System.in); 这就是前面的代码片段开始的地方。所以首先我改变了这一点,让 main 为我需要带有字符串检查的 while 循环的区域调用一个新方法。我还重新格式化了循环:
Scanner scanner = new Scanner(System.in);
String input = new String();
while(!input.contains("stop")) {
System.out.print("Enter an option: ");
input = scanner.nextLine();
}
现在它工作正常。
编辑3**
所以我尝试了新方法中的原始格式,它也可以完美运行。我现在相信这与我如何使用文件扫描仪然后使用 System.in 为新的扫描仪对象重用该引用有关。我对此不是 100% 的,但是将 while 循环移动到它自己的方法并且不将其保留在 main 中是有效的,所以我觉得它与此有关。