嵌套If语句-未接收预期的输出Java
这是一个向用户询问两个问题的简单程序。根据用户的输入,我们将显示对象是什么的猜测。类似于游戏“20个问题”。无论我给程序输入什么,它总是以“回形针”的形式返回myGuess的值 我试过注释每个if/else语句的内部,并将输出设置为1,2,3,但仍然是3(回形针的块)。这让我认为,我对字符串的比较在用户输入或条件逻辑的分配方面存在缺陷。。。代码如下:嵌套If语句-未接收预期的输出Java,java,if-statement,nested,java.util.scanner,Java,If Statement,Nested,Java.util.scanner,这是一个向用户询问两个问题的简单程序。根据用户的输入,我们将显示对象是什么的猜测。类似于游戏“20个问题”。无论我给程序输入什么,它总是以“回形针”的形式返回myGuess的值 我试过注释每个if/else语句的内部,并将输出设置为1,2,3,但仍然是3(回形针的块)。这让我认为,我对字符串的比较在用户输入或条件逻辑的分配方面存在缺陷。。。代码如下: import java.util.Scanner; public class JavaTraining { public static
import java.util.Scanner;
public class JavaTraining {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
String input1,input2;
String myGuess;
System.out.println("TWO QUESTIONS!");
System.out.println("Think of an object, and I'll try to guess it.\r\n");
System.out.println("Question 1) Is it an animal, vegetable, or mineral?");
input1 = keyboard.nextLine();
System.out.println("\r\nQuestion 2) Is it bigger than a breadbox?");
input2 = keyboard.nextLine();
if (input1 == "animal"){
if (input2 == "yes"){
myGuess = "moose";
}
else{
myGuess = "squirrel";
}
}
else if (input1 == "vegetable"){
if (input2 == "yes"){
myGuess = "watermelon";
}
else{
myGuess = "carrot";
}
}
else{
if (input2 == "yes"){
myGuess = "Camaro";
}
else{
myGuess = "paper clip";
}
}
System.out.println("\r\nMy guess is that you are think of a "+myGuess+".\r\nI would"
+" ask you if I'm right, but I don't actually care."+input1+input2);
}
}
对字符串使用.equals()而不是==。Java字符串是对象而不是基本数据类型
改变这个
if (input1 == "animal")
到
看看这个对字符串使用.equals()而不是==。Java字符串是对象而不是基本数据类型
改变这个
if (input1 == "animal")
到
看看这个@makoto既然你已经将这个问题标记为重复问题,我是否应该删除它?或者我应该离开它,因为它有一个不同的上下文,仍然提供了一个教育性的答案?我没有注意到上下文;每当有人对字符串使用
==
时,答案通常是相同的。这当然不是一个坏问题,但我不想让你保留它。@makoto既然你已经将这个问题标记为重复问题,我应该删除它吗?或者我应该离开它,因为它有一个不同的上下文,仍然提供了一个教育性的答案?我没有注意到上下文;每当有人对字符串使用==
时,答案通常是相同的。这不一定是个坏问题,但我不想让你一直问下去。