Я пытаюсь написать метод, который принимает одну букву (строку) и char aray, которая создает логический массив. Булевский массив затем инициализируется со всеми позициями как false. Затем цикл for выполняет итерацию через массив char и для каждой позиции, где буква (угадание) найдена в массиве char, то же положение в булевом массиве помечено как true. Проблема заключается в секции if цикла for. Синтаксис не соответствует моему 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;
}
Цикл можно переписать следующим образом. Кроме того, guess
должна быть типа char
.
for (int i = 0 ; i < wordInArray.length ; i++) {
printIfTrue[i] = wordInArray[i] == guess;
}
== Реляционный оператор
== Проверяет, равны ли значения двух операндов или нет, если да, то условие становится истинным.
(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;
Вы не можете сравнить String с char. Ваша переменная guess
должна иметь тип char
(используя параметр guess = valueEnteredByTheUserAsString.charAt(0)
).
==
- оператор сравнения. Чтобы присвоить значение переменной, вы должны использовать =
:
printIfTrue[i] = true;
Я читаю ==
так же, как:
if (wordInArray[i] == guess )
читается как
если i-й символ словаInArray совпадает с предположением
Я читаю =
как становится или принимает значение:
printIfTrue[i] == true;
читается как
i-й элемент printIfTrue становится истинным
wordInArray
иprintIfTrue
? В любом случае,printIfTrue[i] == true;
должно быть с=
, а не==
.guess
должна быть типаchar
; это типаstring
?