hi, es geht um folgenden Code:
1 | if (x != (5 | 12)) |
ist das korrekt? Das Porgramm soll den Teil der kommt nur ausführen, wenn x ≠ 5 oder x ≠ 12 is. Also für alle x ≠ 5,12
|
Forum: Compiler & IDEs C Verzweigung + Or korrekt?hi, es geht um folgenden Code:
ist das korrekt? Das Porgramm soll den Teil der kommt nur ausführen, wenn x ≠ 5 oder x ≠ 12 is. Also für alle x ≠ 5,12 Das ist nicht korrekt so. Du hast eine falsche Vorstellung davon, was logische Verknüpfungen tun. Hier wird zunächst 5 und 12 per logischem ODER bitweise miteinander verknüpft. Das Ergebnis ist dabei 13. Damit wird x dann verglichen. > Das Porgramm soll den Teil der kommt nur ausführen, wenn x ≠ 5 oder x ≠ > 12 is. Also für alle x ≠ 5,12. Du meinst, wenn wenn x ≠ 5 und x ≠ 12 ist. Du mußt es schreiben als:
wie denn nun ^^also es soll ausgeführt werden wenn x ≠ 5 und auserdem nicht wenn x ≠ 12 beides zugleich kommt nicht vor. Nö, das geht nicht. "5 | 12" ist ein konstanter Wert, und zwar in Binärschreibweise
Es wird oben also überprüft, ob x ungleich 13 ist. Da kannste aber auch gleich
schreiben. Außerdem dürfte eine binäre VerODERung für Deine Zwecke sowieso ungeeignet sein. Was Du brauchst ist ein logisches UND (es soll ja weder 5 noch 12 sein), und das heiß in C "&&". Du musst in dem Fall zwei getrennte Abfragen machen, also z.B.
Mario wrote: > wie denn nun ^^also es soll ausgeführt werden wenn x ≠ 5 und auserdem > nicht wenn x ≠ 12 beides zugleich kommt nicht vor. Eben, es soll ausgeführt werden, wenn x nicht 5 UND nicht 12 ist... Mario wrote: > es soll ausgeführt werden wenn x ≠ 5 und auserdem > nicht wenn x ≠ 12 In C sieht das so aus:
oder gekürzt:
Peter > wie denn nun ^^also es soll ausgeführt werden wenn x ≠ 5 und auserdem > nicht wenn x ≠ 12 beides zugleich kommt nicht vor. Daß x weder 5 noch 12 (also nicht 5 und auch nicht 12) ist, kann sehr wohl vorkommen. Die Bedingung "x ist nicht gleich 12 oder x ist nicht gleich 5" ist immer wahr, denn x ist immer entweder ungleich 12 oder ungleich 5 (oder beides). Die erste Zeile muß natürlich:
heißen. Peter @Peter: Ich vermute mal, dass Mario da nur ein "nicht" zu viel hatte. Was anderes ist auch nicht wirklich sinnvoll. Ich denke mal, die Beschreibung in seinem ersten Posting ist die relevante... 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.
|
|