Forum: PC-Programmierung if Abfrage bei !=


von hallo (Gast)


Lesenswert?

Hallo

Kann mich jemand bitte aufklären wo hier die Unterschiede sind bzw. was 
konkret macht das letzte Bsp. oder wie gehört es geändert damit if 
ausgeführt wird wenn a != 2 oder a != 4 ist.

if (a != 2) ist klar

if (!((a == 2) || (a == 4))) funktioniert richtig, wenn a == 2 oder 4 
ist, soll if nicht ausgeführt werden.

if (!((a != 2) || (a != 4)))

Danke!

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

wenns denn C o.ä. ist nimm statt || einfach |

|| ist ein binäres ODER
| ist ein logische ODER

: Bearbeitet durch User
von mh (Gast)


Lesenswert?

hallo schrieb:
> Hallo
>
> Kann mich jemand bitte aufklären wo hier die Unterschiede sind bzw. was
> konkret macht das letzte Bsp. oder wie gehört es geändert damit if
> ausgeführt wird wenn a != 2 oder a != 4 ist.
>
> if (a != 2) ist klar
>
> if (!((a == 2) || (a == 4))) funktioniert richtig, wenn a == 2 oder 4
> ist, soll if nicht ausgeführt werden.
>
> if (!((a != 2) || (a != 4)))
>
> Danke!

Das erste "!" entfernen? Das ist dann dein "wenn a != 2 oder a != 4 ist"

Dennis H. schrieb:
> wenns denn C o.ä. ist nimm statt || einfach |
>
> || ist ein binäres ODER
> | ist ein logische ODER
Ist das ernst gemeint oder trollst du?

von Tom (Gast)


Lesenswert?

Dann spiel mal (a != 2) || (a != 4) für die Zahlen 1 bis 5 durch und 
überleg warum das Blödsinn ist

von mh (Gast)


Lesenswert?

Tom schrieb:
> Dann spiel mal (a != 2) || (a != 4) für die Zahlen 1 bis 5 durch und
> überleg warum das Blödsinn ist

Auf wen oder was beziehst du dich?

von Sven B. (scummos)


Lesenswert?

Dennis H. schrieb:
> wenns denn C o.ä. ist nimm statt || einfach |
>
> || ist ein binäres ODER
> | ist ein logische ODER

Hä was? Erstens ist das für die meisten Compiler im genannten Fall egal, 
weil "a == 3" entweder 1 oder 0 ist, und zweitens ist | das bitweise 
oder, während || das logische oder ist.

von A. S. (Gast)


Lesenswert?

hallo schrieb:
> if ausgeführt wird wenn a != 2 oder a != 4 ist.

a ist immer ungleich 2 oder 4.

So eine Anfrage gibt keinen Sinn, vermutlich warnt sogar der Compiler.

a soll ungleich 2 UND ungleich 4 sein

Beitrag #6464916 wurde von einem Moderator gelöscht.
von && (Gast)


Lesenswert?

1
if ( (a != 2) && (a != 4)) )

von Manfred (Gast)


Lesenswert?

mh schrieb:
>> Dann spiel mal (a != 2) || (a != 4) für die Zahlen 1 bis 5 durch und
>> überleg warum das Blödsinn ist
>
> Auf wen oder was beziehst du dich?

Wenn ich nicht gerade einen Knoten im Kopf habe, ist die Abfrage per 
ODER Unfug und wird immer ausgeführt.

1 ist ungleich 2 und auch ungleich 4
2 ist ungleich 4
3 ist ungleich 2 und auch ungleich 4
4 ist ungleich 2
5 ist ungleich 2 und auch ungleich 4

Jetzt zeige mir eine Zahl, wo das nicht zutrifft!

Diese Abfrage würde nur mit UND irgendeine Funktion bekommen.

von mh (Gast)


Lesenswert?

Manfred schrieb:
> mh schrieb:
>>> Dann spiel mal (a != 2) || (a != 4) für die Zahlen 1 bis 5 durch und
>>> überleg warum das Blödsinn ist
>>
>> Auf wen oder was beziehst du dich?
>
> Wenn ich nicht gerade einen Knoten im Kopf habe, ist die Abfrage per
> [...]
> Diese Abfrage würde nur mit UND irgendeine Funktion bekommen.

Das ist mir klar, beantwortet aber nicht, auf wen oder was du dich 
bezogen hast.

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Ups. und Sorry.

von was erlauben Strunz? (Gast)


Lesenswert?

1
   if (x != 2)
2
      goto SPAGHETTI;
3
4
   if (x != 4) {
5
   SPAGHETTI:
6
      puts("hier bin ich richtig");
7
   }

von wie die Flasche leer (Gast)


Lesenswert?

was erlauben Strunz? schrieb:
> if (x != 2)
>       goto SPAGHETTI;
>
>    if (x != 4) {
>    SPAGHETTI:
>       puts("hier bin ich richtig");
>    }

Nein ;-)

von PittyJ (Gast)


Lesenswert?

wie die Flasche leer schrieb:
> was erlauben Strunz? schrieb:
>> if (x != 2)
>>       goto SPAGHETTI;
>>
>>    if (x != 4) {
>>    SPAGHETTI:
>>       puts("hier bin ich richtig");
>>    }
>
> Nein ;-)

Doch !

Einmal im Jahr schreibe ich irgendwo im Code ein goto. Einfach weil ich 
es kann.

von Georg M. (g_m)


Lesenswert?

hallo schrieb:
> damit if ausgeführt wird wenn a != 2 oder a != 4 ist.
>
> wenn a == 2 oder 4 ist, soll if nicht ausgeführt werden.

https://de.wikipedia.org/wiki/De-morgansche_Gesetze

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
Noch kein Account? Hier anmelden.