Java While循环不继续下一个语句

时间:2014-01-16 00:18:09

标签: java while-loop

抱歉,应该添加更多

import java.util.Scanner;

public class rpg {
  public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);
    String input;
    boolean live = true;

    if (live == true){
      System.out.println("DETECTIVE RPG");

      while (true) {                          // << ENTER CHECK
        System.out.print("\n Press Enter...");
        input = keyboard.next();
        if (input.equals(null))
          break;
      }                                       // ENTER CHECK >>

      System.out.print("Past check.");   

键盘是我命名为扫描仪的。

这会将“按Enter”打印到控制台,并确保输入框为空。如果他们按Enter键,它应该打破While循环并转到下一个语句,对吧?当我按Enter键时,它显示另一个输入框,并且永远不会进入下一个打印语句。

1 个答案:

答案 0 :(得分:2)

当点击“Enter”时,没有任何令牌可以从Scanner返回。 next() method将阻止,直到它可以读取令牌。

  

查找并返回此扫描仪的下一个完整令牌。在完成令牌之前和之后是与分隔符模式匹配的输入。即使之前的hasNext()调用返回true,此方法也可能在等待输入扫描时阻塞。

切换到nextLine()

  

使此扫描程序超过当前行并返回跳过的输入。此方法返回当前行的其余部分,不包括末尾的任何行分隔符。该位置设置为下一行的开头。

     

由于此方法继续搜索输入以查找行分隔符,因此如果没有行分隔符,它可以缓冲搜索要跳过的行的所有输入。

它将返回整行输入。当该行为空时,它将返回一个空字符串"",而不是null。尝试

input = keyboard.nextLine();
if ("".equals(input))
    break;