我正在开始研究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");
}
}
}
编译时我没有遇到任何错误,但是当我运行程序时它没有回复当我放入任何内容时。它允许我输入两行文本然后终止。
答案 0 :(得分:2)
您的代码是,没有变量不正确,您在代码中调用nextLine()
两次,这就是要求您输入两次输入的原因。
yes = inputvar.nextLine();
no = inputvar.nextLine();
inputvar
是Scanner
个实例,而不是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");
}
希望这有帮助,祝你好运。