首页 > 解决方案 > 为什么我的程序会更改布尔值?

问题描述

我正在编写一个简单的程序来检查输入单词是否可以用输入字母拼写。无论我输入什么,布尔值总是变为真,即使 if 语句中的值不相等。有没有简单的解决方法,或者我应该以不同的方式重写程序?

public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);
    String letters, word;
    System.out.print("Enter your letters: ");
    letters = keyboard.nextLine();
    System.out.print("Enter your word: ");
    word = keyboard.nextLine();
    spellCheck(word, letters);
}

public static void spellCheck(String word, String letters) {
    String w = word.toLowerCase();
    String l = letters.toLowerCase();
    int count = 0;
    boolean check = true;
    for (int i = 0; i < w.length(); i++) {
        if (w.length() > l.length()) {
            check = false;
            break;
        }
        for (int j = 0; j < l.length(); j++) {
            if (w.charAt(i) == l.charAt(j)) {
                count++;
            }
            if (count == w.length()) {
                check = true;
            }
        }
    }

    if (check = true) {
        System.out.println("You can spell " + word + " with " + letters);
    }
    if (check = false) {
        System.out.println("You can't spell " + word + " with " + letters);
    }
}

}

标签: java

解决方案


java中的比较是用双等号完成的==。如果你只使用一个,你实际上是在设置一些东西的价值。

但这是一个非常基本的 java 问题,因此我建议您阅读更多文档和基本教程 :)


推荐阅读