Java Palindrom klappt nicht?
Hi leute,
ich hab hier ein Problem bei einem code, nämlich möchte ich einen STring auf Palindrom überprüfen, der klassiker halt als Übung. Allerdings geschieht hier etwas was ich mir nicht erklären kann.Hier erstmal der code:
void istPalindrom(String wort)
{
int l = wort.length();
for (int i = 0; i < l/2;i++)
{
if(wort.charAt(i) != wort.charAt(l-1-i));
{
System.out.println("nein");
}
}
}
Normaler weise hab ich als rückgabe typ den boolean und statt "nein" ein return zum false, und statt "ja" ein true. Allerdings geht der mir in diesem code trotzdem in die If abfrage rein obwohl sie nicht zutrifft. und wenn ich da ein boolean mache kriege ich weder ein true oder false, hoffe jemand kann mir weiterhelfen.
Info : der sysout mit true befindet sich eigentlich noch in der schleife ausserhalb der If-abfrage, war falsch gesetzt deshalb hab ich den rausgenommen.
2 Antworten
if(wort.charAt(i) != wort.charAt(l-1-i));
{
System.out.println("nein");
}
wenn das Semikolon hinter dem if steht ist das Statement damit beendet. Das heisst die Bedingung ist egal, da bei true oder false eh nichts mehr gemacht wird. Dadurch hat das "nein" auch nichts mehr mit der if Abfrage zutuhn und steht einfach da und wird IMMER ausgegeben. Die Klammern sind dann auch redundant
Das ; hinter den Klammern zu beim if ist zu viel
Danke! Ich gehe mich jetzt begraben