Frage von Jones7991, 51

Kann man mehrer char Variablen in Java auf einmal vergleichen?

Hallo, ich programmiere grad ein kleines Programm wo mehrer char-Variablen miteinander verglichen werden sollen. Ich benutze das Programm NetBeans und programmiere in Java. Immer wenn ich mehr als zwei char-Variablen vergleichen will im still von if (charWort[0] != charWort[1] != charWort[2]) kommt eine Fehlermeldung die sagt, "incomparable types: boolean an char". Nun meine Frage: kann man nicht mehr als zwei char_variablen auf einmal vergleichen ? Oder muss ich es nur anderst schreiben ? Danke schonmal für eure Bemühungen Euer Jones7991

Antwort
von Willibergi, 26

Du vergleichst die Variablen falsch.

In einer if-Abfrage müssen mehrer Bedingungen mit einem logischen Operator verknüpft werden. Beispiel dafür wären && (AND), || (OR), ^ (XOR).

In deinem Fall müsstest du also schreiben:
(ich nehme an, dass alle Elemente des Arrays verschieden sein müssen.

if(charWort[0] != chartWort[1] && charWort[0] != 2 
   && charWort[1] != charWort[2]){
   //Anweisungen
}

Es muss also das erste Element verschieden vom zweiten und dritten Element sein und das zweite verschieden vom dritten.

Durch die logische Verknüpfung && müssen alle Bedingungen wahr sein, damit der Block danach ausgeführt wird.

Ich hoffe, ich konnte dir helfen, wenn du Fragen hast, kommentiere einfach.

LG Willibergi

Antwort
von kloogshizer, 18

Woher sollte der Computer denn bei deinem Beispiel feststellen, dass charwort[0] und charwort[2] nicht gleich sein dürfen? Den Fall hast du übersehen.

Unabhängig davon können Vergleichsoperatoren immer nur zwei Werte vergleichen. Er wird also zuerst einen Teilausdruck ausgewertet und das Ergebnis mit dem dritten Wert verglichen. Und da geht es dann ganz schief, weil die Datentypen nicht passen. Bei dem ersten vergleich kommt Wahr oder falsch heraus, und der zweite vergleich wäre dann z.B.: "Ist WAHR das gleiche wie 'b'?", und dann sagt er zurecht incomparable types. 

Antwort
von MarcelDavis321, 27

anders schreiben:

if(char1 != char2 && char1 != char3 && char2 != char3)

Keine passende Antwort gefunden?

Fragen Sie die Community