Java 为什么要打印此输出,似乎不合适

Java 为什么要打印此输出,似乎不合适,java,Java,输出 一码有多少英尺? 3. 对的 什么东西越干越湿? 不正确。再试一次。甚至在询问用户输入之前就会打印。将第一个问题更改为: //Question4 correct = false; System.out.println("how many feet are in a yard?"); while (!correct) { x1 = input.nextInt(); if (x1==3) { System.out.println("correct.")

输出 一码有多少英尺? 3. 对的 什么东西越干越湿?
不正确。再试一次。甚至在询问用户输入之前就会打印。

将第一个问题更改为:

//Question4 
correct = false;
System.out.println("how many feet are in a yard?");
while (!correct)
{
    x1 = input.nextInt();
    if (x1==3)
    {
        System.out.println("correct.");
        correct = true;
    }
    else
    {
        System.out.println("incorrect. try again.");
    }
}


    //Question5
correct = false;
System.out.println("What gets wetter and wetter the more it dries?");
while (correct == false)
{

   s1 = input.nextLine();
   if (s1.equalsIgnoreCase("a towel")) // cheating is bad!
    {
        System.out.println("correct");
        correct = true;
    }

    else
    {
        System.out.println("incorrect. try again.");
    }
}

您必须始终在
nextLine()之后执行
nextLine()
。新行没有被
nextInt()
吞没,因此下面的
nextLine()
吞没了它,而不是你想要的。

Java
=/=
JavaScriptok,谢谢。在此处找到其他解释:
while (!correct)
{
    x1 = input.nextInt();
    input.nextLine(); //NEW CODE
    if (x1==3)
    {
        System.out.println("correct.");
        correct = true;
    }
    else
    {
        System.out.println("incorrect. try again.");
    }
}