java - 为什么我的程序会更改布尔值?
问题描述
我正在编写一个简单的程序来检查输入单词是否可以用输入字母拼写。无论我输入什么,布尔值总是变为真,即使 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 问题,因此我建议您阅读更多文档和基本教程 :)
推荐阅读
- python - 在 pytrend API 偏移中获取另一个时区
- c++ - 如何调用移动构造函数?
- django - 将 .csv 保存到数据库时发生错误:-'列表索引超出范围'
- android - 使用 Android 导航组件动画片段过渡时 Z-Index 冲突
- javascript - 如何在邮递员中发送访问令牌
- algorithm - 将网格分解为行和列
- javascript - Chrome 控制台 - 循环重新加载
- linux - 将多个目录中的文件重命名(递归)为目录名(linux)
- android - Firebase 和更新 google-services 插件的版本
- python - Shell keeps restarting while using a more complicated nmap command in subprocess in a PYQT5 GUI