Scanner如果我输入单词,我想关闭我的Stop
Scanner sc = new Scanner (System.in);
String[] words1 = new String[25];
for (int i = 0; i < 25; i++) {
if (sc.nextLine().equals("Stop")) {
System.exit(0);
} else {
words1[i]=sc.nextLine();
}
}
for (int i = 0; i < words1.length; i++) {
System.out.print(words1[i]+" ");
}
但它不起作用。如果我输入停止,数据输入将继续。+ 数组不显示。
问题很可能是您
==用来比较单词,而Java对于==比较链接,请使用sc.nextLine().equals("Stop")这是完整的工作代码
你遇到的第一个问题是即使没有更多的行你也在迭代。通过添加更正
&& sc.hasNextLine()。第二个问题是你这样写
你调用了两次
nextLine,第一次字符串存在,第二次不存在,因为它nextLine不会在一次迭代中不断返回相同的值,这不是幂等方法。好吧,另一个问题是,
System.exit(0)如果遇到单词stop,您就会调用,这会结束执行jvm,并且您将永远无法进入打印数组值的循环此外。
close传的时候不能调用Scanner方法System.in,因为它关闭了传给它的流,因此你可能不小心关闭System.in了,然后找了半天的错误