Vergleichsoperatoren in Abfragen

OP #1540721
Hallo Forum!

Ich hab eine Frage, worauf die Antwort bestimmt ganz einfach ist. Aber 
ich bin eben nicht 100%ig sicher. Es handelt sich um die Bedingung bei 
z.B. einer if-Abfrage.
Ich hab das bisher immer ganz ordentlich so gemacht:
if(x == 0)
{...}
macht NUR DANN was, wenn x = 0 ist

oder
if(x != 0)
{...}
macht was, wenn x irgendwas anderes als 0 ist


Jetzt hab ich aber nen Code vorliegen, wo steht
if(x)
{...}
else
{...}

Ich interpretiere das so, daß die Bedingung erfüllt ist, wenn x 
irgendwas nur nicht 0 ist (z.B. 1). Sonst, also wenn x = 0 ist, dann 
(else).

Daraufhin steht da aber noch
if(!x)
{...}
else
{...}

Ich interpretiere das so, daß die Bedingung erfüllt ist, wenn x NICHT 
etwas anderes als 0 ist, also x = 0. Sonst, also wenn x etwas anderes 
als 0 ist, dann (else).

So, WENN ich das jetzt richtig interpretiert haben sollte, DANN ist das 
doch doppelt-gemoppelt! Weil dann ist ja die erste if-else-Abfage 
einfach nur das Umgekehrte von der zweiter, oder?

Hoffe ihr könnt mir bei diesem schlichten "Problem" helfen.
Danke schonmal im Voraus,
vG,
Joachim
Du sollst nicht interpretieren, sondern ein C-Buch lesen.

In C ist jeder Ausdruck, der ein Ergebnis von 0 liefert auch 
gleichzeitig 'logisch FALSE, während jedes Ergebnis ungleich 0 als 
'logisch TRUE' gewertet wird

if( x )
ist also identisch zu
if( x != 0 )

und
if( !x )
ist identisch zu
if( x == 0 )
OP
Hi und danke für die rasche Antwort! Hast ja recht mit dem Buch, aber 
ich bin grad nicht zu Hause und hab das Buch nicht greifbar :( .
Aber ist meine "Verstehungsweise" des oberen Codes soweit korrekt? Ich 
finde, daß sich deine (Karl Heinz) Aussage mit meiner deckt ;) ...
Das hier

> Daraufhin steht da aber noch
> if(!x)
> {...}
> else
> {...}
>
> Ich interpretiere das so, daß die Bedingung erfüllt ist, wenn x NICHT
> etwas anderes als 0 ist, also x = 0. Sonst, also wenn x etwas anderes
> als 0 ist, dann (else).

ist falsch aufgefasst. Denk nochmal darüber nach.
Karl heinz Buchegger schrieb:
> Das hier
>
>> Daraufhin steht da aber noch
>> if(!x)
>> {...}
>> else
>> {...}
>>
>> Ich interpretiere das so, daß die Bedingung erfüllt ist, wenn x NICHT
>> etwas anderes als 0 ist, also x = 0. Sonst, also wenn x etwas anderes
>> als 0 ist, dann (else).
>
> ist falsch aufgefasst. Denk nochmal darüber nach.

Vergiss diese Aussage.
Deine Auffassung ist korrekt. Ich habe dein abschliessende 
Schlussfolgerung (die richtig ist) übersehen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.