Java 我的程序已成功编译并运行,但显示错误的输出
我的程序必须显示问题“Is 10>2”的答案是正确的、错误的还是用户输入错误的。即使我输入“是”或“否”,它仍然会显示错误的输入。这是一个非常非常简单的程序。不过,我是个新手。任何帮助都将不胜感激Java 我的程序已成功编译并运行,但显示错误的输出,java,Java,我的程序必须显示问题“Is 10>2”的答案是正确的、错误的还是用户输入错误的。即使我输入“是”或“否”,它仍然会显示错误的输入。这是一个非常非常简单的程序。不过,我是个新手。任何帮助都将不胜感激 import java.util.Scanner; public class yesorno{ public static void main (String args[]){ Scanner answer = new Scanner(System.in); String ans
import java.util.Scanner;
public class yesorno{
public static void main (String args[]){
Scanner answer = new Scanner(System.in);
String ans;
System.out.println("Answer with a YES or NO");
System.out.println("Is 10>2?");
System.out.print("Answer:");
ans = answer.next();
if(ans == "YES"){
System.out.print("Correct!");
}
else if (ans == "NO"){
System.out.println("Wrong!");
}
else{
System.out.println("Wrong input!");
}
}
}
您应该使用来比较字符串,而不是运算符==
请注意,只有当两个对象实际上是同一个对象时,operator==
才会产生true,事实并非如此
如果(ans.equals(“YES”){[并对程序中的所有其他条件执行相同操作]您在Java中使用==进行字符串比较,这通常是不推荐的,因为==进行对象比较,而不是实际的字符串比较 尝试使用equals()方法 也就是说,从
if(ans == "YES"){
System.out.print("Correct!");
}
else if (ans == "NO"){
System.out.println("Wrong!");
}
到
@keavy:我添加了条件应该是什么,还附加了一个指向java文档的
equals()
方法的链接,这样你就可以阅读更多关于它的内容。好吧,好吧。还有一件事,“==”只用于数字吗?@keavy:操作符==
用于检查身份,而不是平等。如果是-identity,则是平等。它起作用了!非常感谢。有一件事,你是“==”仅适用于数字?
if(ans == "YES"){
System.out.print("Correct!");
}
else if (ans == "NO"){
System.out.println("Wrong!");
}
if(ans. equals("YES")){
System.out.print("Correct!");
}
else if (ans.equals("NO")){
System.out.println("Wrong!");
}