Я пытаюсь проверить, является ли введенное слово палиндром или нет (то же самое написано вперед и назад). Из того, что я вижу, он должен работать, но Eclipse говорит: «Значение локальной переменной isPalindrome не используется», но оно используется. Проблема в том, что даже если слово не является палиндром, это говорит.Локальная переменная не используется
import java.util.Scanner;
public class Palindrome {
public static void main(String[] args) {
String phrase;
char[] phraseLetters;
int endChar;
boolean isPalindrome;
Scanner input = new Scanner(System.in);
System.out.println("Enter a word or phrase.");
phrase = input.nextLine();
input.close();
phrase = phrase.toLowerCase();
phrase = phrase.replaceAll(" ","");
phraseLetters = phrase.toCharArray();
endChar = phraseLetters.length - 1;
for (int i = 0; i < phraseLetters.length; i++) {
if (phraseLetters[i] != phraseLetters[endChar]) {
isPalindrome = false;
} else {
isPalindrome = true;
endChar -= 1;
}
}
if (isPalindrome = true) {
System.out.println("This word or phrase entered is a palindrome.");
} else {
System.out.println("This word or phrase is not a palindrome.");
}
}
}
EDIT: Я попробовал, если заявление будучи
if (isPalindrome == true)
и
if (isPalindrome)
В обоих случаях Eclipse, говорит "Локальная переменная isPalindrome не может быть инициализирован," в этом если состояние.
FINAL EDIT:
С тех пор я двинулся дальше, и переписать этот код, однако я просто вернулся и сосредоточил свой исходный код, если кто-то еще смотрит на это.
Я инициализируется isPalindrome в начале кода:
Boolean isPalinddrome = True;
Я изменил условие-петли для:
for (int i = 0; (i < phraseLetters.length) && (isPalindrome); i++)
Наконец я изменил if (isPalindrome = true)
на if (isPalindrome)
посмотрите на условия yoda, чтобы предотвратить эту ошибку. –