Java 使用「;hasNext();在爪哇
Java 使用「;hasNext();在爪哇,java,java.util.scanner,Java,Java.util.scanner,hasNext()语句如何在此处运行?有人能详细解释一下吗?基于,hasNext(): 在接口迭代器中指定 如果此扫描仪的输入中有另一个标记,则返回true。此方法在等待输入扫描时可能会阻塞。扫描仪不会超过任何输入 如果此扫描仪已关闭,则引发非法状态异常 在您的代码中,hasNext()用于在每次迭代完成后检查可迭代集合中是否还有更多元素需要迭代。基于,hasNext(): 在接口迭代器中指定 如果此扫描仪的输入中有另一个标记,则返回true。此方法在等待输入扫描时可能会阻塞。扫描仪不会超
hasNext()
语句如何在此处运行?有人能详细解释一下吗?基于,hasNext()
:
- 在接口
迭代器中指定
- 如果此扫描仪的输入中有另一个标记,则返回
。此方法在等待输入扫描时可能会阻塞。扫描仪不会超过任何输入true
- 如果此扫描仪已关闭,则引发非法状态异常
hasNext()
用于在每次迭代完成后检查可迭代集合中是否还有更多元素需要迭代。基于,hasNext()
:
- 在接口
迭代器中指定
- 如果此扫描仪的输入中有另一个标记,则返回
true
。此方法在等待输入扫描时可能会阻塞。扫描仪不会超过任何输入
- 如果此扫描仪已关闭,则引发非法状态异常
在您的代码中,hasNext()
用于检查在每次迭代完成后,您的可迭代集合中是否还有更多的元素需要迭代。Scanner
类根据文档实现一个类迭代器
看
如果您的类实现了一个迭代器
,那么它需要实现以下函数
- 哈斯奈特
如果迭代包含更多元素,则返回true。(换句话说,如果next()返回元素而不是抛出异常,则返回true。)
特定于文档指定的扫描仪:
如果此扫描仪的输入中有另一个标记,则返回true。此方法在等待输入扫描时可能会阻塞。扫描仪不会超过任何输入。
- 下一个
返回迭代中的下一个元素。
- 除去
从基础集合中移除此迭代器返回的最后一个元素(可选操作)。每次调用next()时只能调用此方法一次。如果在迭代过程中以除调用此方法以外的任何方式修改了基础集合,则迭代器的行为是未指定的
来源:Scanner
类根据文档实现一个类迭代器
看
如果您的类实现了一个迭代器
,那么它需要实现以下函数
- 哈斯奈特
如果迭代包含更多元素,则返回true。(换句话说,如果next()返回元素而不是抛出异常,则返回true。)
特定于文档指定的扫描仪:
如果此扫描仪的输入中有另一个标记,则返回true。此方法在等待输入扫描时可能会阻塞。扫描仪不会超过任何输入。
- 下一个
返回迭代中的下一个元素。
- 除去
从基础集合中移除此迭代器返回的最后一个元素(可选操作)。每次调用next()时只能调用此方法一次。如果在迭代过程中以除调用此方法以外的任何方式修改了基础集合,则迭代器的行为是未指定的
来源:hasNext()告诉您是否有更多的元素要从流中读取。在这种情况下,调用将被阻止,直到有用户输入
有三种情况:
用户根本不提供任何输入。该呼叫将无限期阻塞
用户提供的某些输入不是EOF。返回值将为
对
用户输入EOF。返回值将为false
在程序的上下文中,这意味着while循环将一直执行,直到用户提供EOF(Ctrl+D或Ctrl+Z)。如果用户意识到了这一点,我想也没关系
但这种行为肯定可以变得更加用户友好:例如,它当前要求用户输入一个数字。但是hasNext()不关心输入是否为number,只要输入不是EOF,循环将永远继续
如果用户试图通过命令行提供一些预定义的输入,则可能会出现另一个问题,如果输入没有用EOF明确终止,则程序将永远阻塞。该语句并不表示程序将在没有更多输入可读取时退出(当然,除非EOF指定)。hasNext()告诉您是否有更多元素可从流中读取。在这种情况下,调用将被阻止,直到有用户输入
有三种情况:
用户根本不提供任何输入。该呼叫将无限期阻塞
用户提供的某些输入不是EOF。返回值将为
对
用户输入EOF。返回值将为false
在程序的上下文中,这意味着while循环将一直执行,直到用户提供EOF(Ctrl+D或Ctrl+Z)。如果用户意识到了这一点,我想也没关系
但这种行为肯定可以变得更加用户友好:例如,它当前要求用户输入一个数字。但是hasNext()不关心输入是否为number,只要输入不是EOF,循环将永远继续
如果用户试图通过命令行提供一些预定义的输入,则可能会出现另一个问题,如果输入没有用EOF明确终止,则程序将永远阻塞。该语句并不意味着当没有更多的输入可读取时(当然,除非EOF指定),程序将退出。扫描仪通过
Scanner input = new Scanner(System.in);
while(input.hasNext())
{
System.out.println(input.nextInt());
System.out.println("To go on,Enter any number");
}