java - 如何使用 Scanner 方法 "hasNext"作为条件退出 java 中的 while 循环?

标签 java loops while-loop infinite-loop

我是 java 编程的初学者,遇到了一个奇怪的问题。下面是我的代码,它要求用户输入并一次打印出用户输入的内容。

问题是程序永远不会结束,根据我有限的理解,它似乎卡在了 while 循环中。谁能帮我一点忙?提前致谢。

import java.util.Scanner;

public class Test{
   public static void main(String args[]){
      System.out.print("Enter your sentence: ");
      Scanner sc = new Scanner (System.in);

      while (sc.hasNext() == true ) {
        String s1 = sc.next();
        System.out.println(s1);
      }

      System.out.println("The loop has been ended"); // This somehow never get printed.
   }
}

最佳答案

你不断得到一个新的新字符串,如果它不为空则继续循环。只需在循环中为退出字符串插入一个控件。

while(!s1.equals("exit") && sc.hasNext()) {
    // operate
}

如果要在循环内声明字符串,如果字符串为“exit”则不在循环体中执行操作:

while(sc.hasNext()) {
    String s1 = sc.next();
    if(s1.equals("exit")) {
        break;
    }
    //operate
}

关于java - 如何使用 Scanner 方法 "hasNext"作为条件退出 java 中的 while 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10490344/

相关文章:

java - 检查字符串是否包含编码字符

java - Iterator 的 remove 方法实际上是如何删除一个对象的

c# - 不能声明局部变量名称 'choice',因为它会给 'choice' 不同的含义

c - if 条件中的 i++ 和 while 循环内 if 后的 i++ 有什么区别?

java - 我可以通过 Spring Webflow 2.1.1 运行 Webflow 1.0 流吗?

java - 拉取所有带有注解的字段(包括一个对象中的字段在另一个对象中和内部类中的字段)

java - 类中的访问方法

php - 在 Javascript 循环中增加 PHP 变量

python - 简单的 Python 生成器跳过 for 循环的步骤

PHP - 多个 while($row = mysql_fetch_array($variable)) { } 错误