Java If-Abfrage wenn ein String Nicht "text1" ODER "text2" ?
Ich möchte gerne eine Nutzereingabe daraufhin überprüfen. Und zwar möchte ich nicht prüfen ob sie das Wort plus oder das Wort minus enthält, sondern ob sie Nicht das Wort plus ODER nicht das Wort minus enthält. Die Abfrage ob sie es enthält im Codebeispiel 2 funktioniert ja wunderbar, nu wüsste ich gern ob es eben auch andersherum funktioniert und wenn ja wie. Ich habe versucht mit ! zu arbeiten wie im Codebeispiel 1. Leider funktioniert das nicht.
3 Antworten
Die Umkehrung von „a || b“ ist !(a || b)“ (geklammert!). Wenn Du die Klammern auflösen möchtest, dann musst Du die de-morganschen Gesetze beachten.
!(a || b) = !a && !b
Wenn die Rechenart „plus“ ist, dann gilt ja irrtümlicherweise der logische Ausdruck „Rechenart ist nicht plus oder Rechenart ist nicht minus“.
Hey,
das verwirrt viele Leute am Anfang
Du musst && anstelle von || nutzen. Du willst ja nämlich, wie ich dem Text entnehme, ob weder "plus", noch "minus" eingegeben wurde. Du willst also schauen, ob der Text nicht "plus" UND auch nicht "minus" ist.
Mfg Jannick (L1nd)
Vielen vielen Dank, das ging ja fix. Ich habe in alle Richtungen gedacht aber (wenn man die Antwort dann liest) nicht so einfach :) Funktioniert nun super!
Für den Fall "weder Plus noch Minus" wäre das
(!rechenart.equals("plus")) && (!rechenart.equals("minus"))
Dein funktionierender Fall (Code 2) überprüft, ob rechenart "plus" und/oder "minus" exakt entspricht.
Das Gegenteil dazu wäre, dass rechenart nicht exakt "plus" entspricht und rechenart nicht exakt "minus" entspricht.
P.S.: Den Fall aus Code 2 könnte man auch mit einem exklusiven Oder lösen, aber das ist in einer Situation in der sowieso nur eine der zwei Bedingungen erfüllt sein kann (da sich die beiden gegenseitig ausschließen) nicht zwingend notwendig.