我正在尝试编写一个方法,它接受一个字母(字符串)和一个char aray,它创建一个布尔数组。然后初始化布尔数组,所有位置都为false。 然后,for循环遍历char数组,对于在char数组中找到字母(guess)的每个位置,布尔数组中的相同位置标记为true。问题出在for循环的if部分。语法不是我的JDE接受的。 感谢任何提示。
boolean[] printIfTrue = new boolean[wordInArray.length];
for (int i = 0 ; i == wordInArray.length ; i++) {
if (wordInArray[i] == guess ){ // problem
printIfTrue[i] == true; // problem
}
}
return printIfTrue;
}
答案 0 :(得分:1)
循环可以重写如下。此外,guess
应为char
类型。
for (int i = 0 ; i < wordInArray.length ; i++) {
printIfTrue[i] = wordInArray[i] == guess;
}
答案 1 :(得分:0)
您无法将String与char进行比较。您的guess
变量应为char
类型(使用guess = valueEnteredByTheUserAsString.charAt(0)
)。
==
是一个比较运算符。要为变量赋值,必须使用=
:
printIfTrue[i] = true;
我读了==
,因为与相同。:
if (wordInArray[i] == guess )
读作
如果wordInArray 的第i个字符与 guess
相同
我看了=
,因为变为或取值:
printIfTrue[i] == true;
读作
printIfTrue 的第i个元素变为 true
答案 2 :(得分:0)
==是关系运营商
==检查两个操作数的值是否相等,如果是,则条件变为真。
(A == B) is not true.
=是分配运营商
=简单赋值运算符,将右侧操作数的值分配给左侧操作数
C = A + B will assign value of A + B into C
不要混合它们,正如@JB Nizet所说,
你不能直接比较String和Character,我假设 wordsInArray 是你的角色数组而猜是String,所以你可以使用
wordsInArray[i]==guess.charAt(i);
printIfTrue[i] = true;