是否有原因input.nextLine()似乎没有在等待用户输入?

时间:2019-05-05 05:45:32

标签: java

我正在尝试编写一个简单的程序,该程序将要求用户输入数字并计算每个数字的阶乘,直到用户告诉程序停止为止。但是,由于某种原因,我的while循环的最后一部分(该问题应询问用户是否要继续)不等待用户输入,并且程序在计算出第一个阶乘后立即立即结束。我在其他程序中使用了相同的for循环来做类似的事情,但从未遇到过这个问题。究竟是什么原因导致的,我将如何解决它。

  String goAgain;
  long factNum;

  Scanner input = new Scanner(System.in);

  System.out.println("First things first, do you wish to use the program? (y/n)");
  goAgain = input.nextLine();

  while(goAgain.equalsIgnoreCase("y"))
  {
     System.out.println("Please enter the number you wish to find the factorial of.");
     factNum = input.nextLong();
     System.out.println();

     System.out.println(factNum + "! is equal to " + factorial(factNum));
     System.out.println();
     System.out.println("Would you like to continue? (y/n)");
     goAgain = input.nextLine();
  }

应该等待用户输入是否要继续,但这只是在显示“您希望继续”之后立即结束程序。 here

0 个答案:

没有答案