Scanner scanner = new Scanner(system.in);
String input = new String();
while(!input.equalsIgnoreCase("stop")) {
input = scanner.nextLine();
}
为什么这不起作用?循环永远持续。我之前已经使用过这种方法一百万次,现在它无法工作。
编辑**
好的我正在使用JGrasp(因为这是我教授希望我们使用的) 当我在netbeans中尝试这个时,它工作得很好......
EDIT2 **
首先,我不确定这是否是问题,但在我的代码中,我在主要的开头有类似的东西 扫描仪扫描仪=新扫描仪(文件); 后来就是这样的 scanner =新的扫描仪(System.in); 这就是前面的代码片段开始的地方。首先,我通过主要调用一个新方法来改变这一点,我需要带有字符串检查的while循环。我还重新格式化了循环:
Scanner scanner = new Scanner(System.in);
String input = new String();
while(!input.contains("stop")) {
System.out.print("Enter an option: ");
input = scanner.nextLine();
}
现在它运作正常。
EDIT3 **
所以我尝试了新方法中的原始格式,它也完美无缺。我现在相信它与我如何使用文件扫描程序有关,然后使用System.in重新使用该引用作为新的扫描程序对象。我不是百分之百,但将while循环移动到它自己的方法而不是保持主要工作,所以我觉得它与它有关。
答案 0 :(得分:1)
也许你应该检查一下扫描仪还有什么东西需要解析?
while(scanner.hasNextLine() && !input.equalsIgnoreCase("stop")) {
input = scanner.nextLine();
}
答案 1 :(得分:0)
代码工作正常:
除汇编错误外,请使用System.in
代替system.in
Scanner scanner = new Scanner(System.in);
String input = new String();
while(!input.equalsIgnoreCase("stop")) {
input = scanner.nextLine();
}