我的程序成功编译并运行但显示错误的输出

时间:2012-02-22 18:35:37

标签: java

我的程序必须显示问题“是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!");
    }
}
}

2 个答案:

答案 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!");
}