Java不会回应我的输入

时间:2014-06-05 22:03:48

标签: java

我正在开始研究java并且我一直在尝试编写这个基本程序,它会问你一个是或否问题,你给它一个答案,然后根据答案做一些事情。目前我的代码就是这个。

import java.util.Scanner;

public class Main {
public static void main(String args[])

{
    Scanner inputvar = new Scanner (System.in);
    String yes, no;
    System.out.println("Enter yes or no");
    yes = inputvar.nextLine();
    no = inputvar.nextLine();

    if (inputvar.equals(yes))
    {
    System.out.println("You said yes!");
    }

    else if (inputvar.equals(no)){
        System.out.println("You said no");
    }

  }
}

编译时我没有遇到任何错误,但是当我运行程序时它没有回复当我放入任何内容时。它允许我输入两行文本然后终止。

3 个答案:

答案 0 :(得分:2)

您的代码是,没有变量不正确,您在代码中调用nextLine()两次,这就是要求您输入两次输入的原因。

yes = inputvar.nextLine();
no = inputvar.nextLine();

inputvarScanner个实例,而不是String个对象,您无法尝试 inputvar.equals(yes)

您应该只定义:

 String myInput = inputvar.nextLine();

并检查

if (myInput.equals("yes")){
//do some stuff
}else if(myInput.equals("no")){
//do other stuff
}

答案 1 :(得分:0)

Scanner inputvar = new Scanner (System.in);
String yes, no;
System.out.println("Enter yes or no");
yes = inputvar.nextLine();  // You enter the first line
no = inputvar.nextLine();   // You enter the second line

if (inputvar.equals(yes))   // You try to compare an instance of 
                            // Scanner with the firstline (not equal)
{
System.out.println("You said yes!");
}

else if (inputvar.equals(no)){    // You try to compare an instance of 
                                  // Scanner with the firstline (not equal)
    System.out.println("You said no");
}
// You terminate the program

您应该执行以下操作:

String yes = "yes";
String no = "no";

String input = inputvar.nextLine();

if(yes.equals(input)) { [...]

答案 2 :(得分:0)

您应该将代码更改为此

Scanner inputvar = new Scanner (System.in);
String input;
System.out.println("Enter yes or no");
input = inputvar.nextLine();


if (input.equals(yes))
{
System.out.println("You said yes!");
}

else if (input.equals(no)){
    System.out.println("You said no");
}

希望这有帮助,祝你好运。