我是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/39864148/

10-08 22:08
查看更多