Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java循环问题关于!scanner.nextLine()作为条件_Java_Loops - Fatal编程技术网

Java循环问题关于!scanner.nextLine()作为条件

Java循环问题关于!scanner.nextLine()作为条件,java,loops,Java,Loops,目前,我正在学习用mooc编写Java代码,并且正在做一项作业,您可以在其中获取用户输入(并使用它进行操作)。如果用户未输入任何内容,则程序/循环结束 这是我正确的答案: while(true){ 字符串语句=scanner.nextLine(); 如果(句子.等于(“”){ 打破 } } 但在此之前,我也尝试过类似的方法: while(!scanner.nextLine().equals(“”){/。。。 为什么那个方法不起作用?我看不出有什么问题。 (以下是完整的代码(如果需要) imp

目前,我正在学习用mooc编写Java代码,并且正在做一项作业,您可以在其中获取用户输入(并使用它进行操作)。如果用户未输入任何内容,则程序/循环结束

这是我正确的答案:

while(true){
字符串语句=scanner.nextLine();
如果(句子.等于(“”){
打破
}
}
但在此之前,我也尝试过类似的方法:

while(!scanner.nextLine().equals(“”){/。。。
为什么那个方法不起作用?我看不出有什么问题。 (以下是完整的代码(如果需要)

import java.util.Scanner;
公务舱俱乐部{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
而(!scanner.nextLine().equals(“”){
字符串语句=scanner.nextLine();
字符串[]数组=拆分器(句子);
for(int i=0;i
尝试使用
scanner.hasNext()
查看是否还有其他内容可以读入。可以使用
StringTokenizer
代替拆分器方法,它将按空格标记字符串

代码无法工作的原因是您调用Scanner.nextLine()两次。即使您的代码:

while(!scanner.nextLine().equals(“”)

是一个条件检查,它读入并继续。请这样想:扫描仪就像一个图书阅读器。当您调用Scanner.nextLine()时,图书阅读器移动到该行并读取它。当您再次调用它时,它读取一个空行。例如,如果我输入以下内容:


您的读者将读入“我喜欢馅饼”并检查它是否为“”。完成后,当您得到
语句
变量时,您再次调用了该方法,该方法将读取下一行中不存在的内容。因此,您的代码无法工作。

尝试使用
scanner.hasNext()
查看是否还有其他内容可以读入。可以使用
StringTokenizer
代替拆分器方法,它将按空格标记字符串

代码无法工作的原因是您调用Scanner.nextLine()两次。即使您的代码:

while(!scanner.nextLine().equals(“”)

是一个条件检查,它读入并继续。请这样想:扫描仪就像一个图书阅读器。当您调用Scanner.nextLine()时,图书阅读器移动到该行并读取它。当您再次调用它时,它读取一个空行。例如,如果我输入以下内容:


您的读者将读入“我喜欢馅饼”并检查它是否为“”。完成后,当您得到
语句
变量时,您再次调用了该方法,该方法在下一行中读取,该行不存在。因此,您的代码无法工作。

是否尝试了
scanner.hasNext()
?请阅读我编辑的帖子,以澄清为什么你的代码不起作用。:)哦,我想我明白你的意思,现在运行两次扫描仪,谢谢!你试过
scanner.hasNext()了吗
?请阅读我编辑的帖子,以澄清为什么你的代码不起作用。:)哦,我想我明白你的意思了,现在运行两次扫描仪,谢谢!谢谢!这是有效的,但是我尝试的代码不起作用有什么原因吗?我似乎想不出有什么问题(假设回车是我试图结束程序时唯一按下的按钮)谢谢,这是有效的,但是我尝试的代码没有工作有什么原因吗?我似乎想不出任何关闭的东西(假设回车是我试图结束程序时唯一按下的按钮)