hi ist folgende expression (bTest ) immer true ? char c; bool bTest = (c != 'X' || c != 'Y' ); danke
Ja. (Solange da keine ISR c mitten in der Zeile verändert) Der Klammerausdruck wird nur dann falsch, wenn beide Vergleiche falsch sind. Da c aber niemals gleichzeitig den Wert 'X' und 'Y' haben kann, kommt immer wahr raus. Oliver
c wird natürlcih im programm verlauf gesetzt char c; ... bool bTest = (c != 'X' || c != 'Y' );
c ist natürlich immer entweder nicht X oder nicht Y. Wie Oliver schon sagte: Der einzige Fall, in dem die Bedingung nicht erfüllt wäre, kann nie auftreten, da er bedeuten würde, dass c gleichzeitig X und Y sein müsste...
Johannes M. wrote:
> c ist natürlich immer entweder nicht X oder nicht Y.
Das nun ist falsch, denn es kann sowohl nicht X als auch nicht Y sein.
Andreas Kaiser wrote: > Johannes M. wrote: > >> c ist natürlich immer entweder nicht X oder nicht Y. > > Das nun ist falsch, denn es kann sowohl nicht X als auch nicht Y sein. Das spielt doch keine Rolle. Es geht doch darum, dass immer mindestens einer der beiden Vergleiche wahr ist. Dass auch beide gleichzeitig wahr sein können, ist schon klar... Hätte vielleicht schreiben sollen "c ist natürlich immer entweder nicht X oder nicht Y oder nicht X und nicht Y."
Johannes M. wrote:
> Das spielt doch keine Rolle.
Tut es wirklich nicht. Aber wenn man sich schon mit Logik rumschlägt,
dann lieber logisch als unlogisch ;-). Ohne das "entweder" wäre es
korrekt gewesen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.