我的if语句中的布尔值有问题

时间:2018-12-22 03:09:46

标签: java

我正在编写一个程序来测试我对某些日语字母的了解。基本上,我希望程序输出一个随机字母,例如,然后在扫描仪中输入答案a,如果答案正确,它将输出“正确”,否则输出“错误”。

老实说,我不确定我的程序在做什么错。对我来说,这似乎合乎逻辑,但当我的答案明确正确时,控制台仍会输出“错误”:

public class Gojuon {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("あ");
        list.add("い");
        list.add("う");
        list.add("え");
        list.add("お");

        for(int i = 0; i < 3; i++) {
            String gojuonLetter = list.get(new Random().nextInt(list.size()));
            System.out.println(gojuonLetter);
            Scanner scanner = new Scanner(System.in);
            System.out.println("Type Romaji:");
            String answer = scanner.nextLine();

            if(gojuonLetter == "あ" && answer == "a") {
                System.out.println("Correct");
            } else if(gojuonLetter == "い" && answer == "i") {
                System.out.println("Correct");
            } else if(gojuonLetter == "う" && answer == "u") {
                System.out.println("Correct");
            } else if(gojuonLetter == "え" && answer == "e") {
                System.out.println("Correct");
            } else if(gojuonLetter == "お" && answer == "o") {
                System.out.println("Correct");
            } else {
                System.out.println("Wrong");
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您应该将String子句中的.equals()==而不是if进行比较。