If Anweisung soll nur 3 TextWerte zulassen!!!
Geizhals » Forum » Programmierung » If Anweisung soll nur 3 TextWerte zulassen!!! (21 Beiträge, 161 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.
Re: If Anweisung soll nur 3 TextWerte zulassen!!!
Fly
12.03.2004, 08:07:32
Die Antwort wurde ja schon gegeben (es ist && statt ||), zur Erklärung:

Die Operation "oder" funktioniert so, dass sie mit true abbricht und nicht weiter vergleicht, wenn eine der Bedingungen erfüllt ist (genauso wie "und" mit false abbricht, wenn nur eine nicht erfüllt ist). Weil's ja auch wahr ist.

Nimm an, Du hast in Deinem Beispiel "Satteldach" als Antwort. Daraufhin beginnt das Parsen:

dach !="Giebeldach" -> True

Und true is dann auch das Ergebnis, weil wie gesagt, sobald ein Teilterm "true" liefert, ist nach der Logik der komplette Term wahr.

Durch die nicht unbedingt intuitiv verständliche Logik bedeutet es in diesem Fall "wahr" zu sein, wenn "dach" nur einen dieser Werte nicht annimmt, was zwangsläufig immer true ist.

Bei einer Verknüpfung mit "und", müssen alle 3 Terme wahr sein, damit der Gesamtterm wahr wird. Mit anderen Worten, ersetzt Du im Ausdruck jedes Oder mit einem Und bedeutet das, der Gesamtterm wird nur dann wahr, wenn jeder Einzelterm wahr ist, wenn also sowohl gilt:

dach != "Giebeldach"
dach != "Flachdach"
dach != "Satteldach"

Und das dürfte ziemlich das sein, was Du erreichen willst.

Dass man daraus 'ne eigene Wissenschaft machen kann dürfte klar sein, und ich will Dich nicht mit viel Theorie langweilen. Soviel vielleicht: Üblicherweise ist es richtig, wenn die Einzelterme auf "ungleich" prüfen sie mit "und" zu verbinden, bei "gleich" mit "oder".

Ist zwar nicht sehr mathematisch, aber wahr. Oder? :)

________________________________________________________________________
Es ist mir lieber, nach meinem Tod fragen sich die Leute, warum es keine Statue von mir gibt als sie fragen, warum es eine gibt.

---Marcus Porcius Cato

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung