我的程序必须显示问题“是10> 2”的答案是否正确,错误或用户输入错误。即使我输入“YES”或“NO”,它仍会显示WRONG INPUT。这是一个非常非常简单的计划。但是,我是新手。任何帮助将不胜感激。
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!");
}
}
}
答案 0 :(得分:7)
if(ans == "YES"){
您应该使用equals()
来比较字符串,而不是operator==
请注意,operator==
只有在两个对象实际上是同一个对象时才会生效,而事实并非如此。
您应将其替换为if(ans.equals("YES")) {
[并对您计划中的所有其他条件执行相同操作]
答案 1 :(得分:1)
您正在使用==在Java中进行字符串比较,这通常不推荐,因为==会进行对象比较,而不是实际的字符串比较。
尝试使用equals()方法。
即,从
更改您的代码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!");
}