verwirrung logisches UND bzw. ODER
-
Huhu,
ich brauche kurz eine kleine Denkhilfe:
ich will eine Abfrage, die immer wieder wiederholt wird, solange der Benutzer nicht j oder n eingegeben hat:
do { printf("\nUmrechnung[j/n]? "); umrechnung = tolower(getchar()); cb(); //leert nur den Puffer }while(umrechnung != 'j' && umrechnung != 'n');
so schaut die Abfrage aus. Wenn ich ein && schreibe, geht alls so wie ichs will. Aber müsste ich nicht rein "logisch" gesehen || schreiben, da umrechnung ja ENTWEDER j ODER n ist, oder anders gesagt: die Schleife soll solange ausgeführt werden, solange umrechnung ungleich j ODER ungleich n ist.
Beim && müssen doch beide Bedingungen erfüllt sein, sprich: Führe die Schleife aus solange umrechnung ungleich j UND ungleich n ist?!
Ich fürchte ich hab grad nur ein Brett vorm Kopf...sorry für die triviale FrageGrüße
-
chmbw schrieb:
...solange der Benutzer nicht j oder n eingegeben hat
Das ist
!(umrechnung == 'j' || umrechnung == 'n')
chmbw schrieb:
oder anders gesagt: die Schleife soll solange ausgeführt werden, solange umrechnung ungleich j ODER ungleich n ist.
Das ist
(umrechnung != 'j' || umrechnung != 'n')
Das ist eine ganz andere Aussage, und sie ist immer wahr.
Jeder mögliche Wert von umrechnung ist immer ungleich j oder ungleich n. Für n ist der erste Teil der Bedingung wahr (n ist ungleich j), für j der zweite (j ist ungleich n).
-
oh man, danke...man sollte nicht mit schlafdefizit programmieren
bin wohl echt zu verpeilt