Ist es möglich, viele "Oder"-Zeichen (||) in Bedingungen zu vermeiden, die dieselbe Aktion verursachen? - Seite 8

 
paladin80:

In meinen Programmen verwende ich diese Konstruktion, wenn es viele ifs gibt, mit den Bedingungen, die am häufigsten false ergeben:

Und wenn ich viele if-ops überprüfen muss, verwende ich diesen Weg:
Danke, Maxim, aber das ist nicht gut, denn die verschiedenen Bedingungen, die ich habe, sind weder von der Logik noch von den Parametern her vergleichbar!
 
alsu:

Nein, so funktioniert das nicht. Erstens muss nach if() etwas stehen, zumindest nur ein Semikolon (d.h. ein leerer Operator) . Zweitens: Zu welchem der "Wenns" soll Ihr anderer Operator gehören? Wenn sie sich nur auf die letzte Bedingung bezieht (wie Sie es geschrieben haben), dann wird Action nur ausgeführt, wenn die Bedingung D wahr ist, vorausgesetzt, dass A, B und C falsch sind. Es ist immer ratsam, geschweifte Klammern zu setzen, um die Logik klar zu erkennen.

Wenn meine Hervorhebung möglich ist, dann ist es eine gute Idee, es so zu machen:

if (!A && !B && !C && !D) ;//пустой оператор
else Action();

  

Wie? Ist das möglich? -------------------------- Ich habe es im Code überprüft, der Compiler gibt eine Warnung aus;

';' - Semikolon unerwartet C:\Programmdateien\

Wenn es funktioniert, können wir dann auch die Warnung in Kauf nehmen?!

 
borilunad:

Wenn das, was ich hervorgehoben habe, möglich ist, dann wäre es eine gute Idee, es so zu machen:

Wie? Ist das möglich? -------------------------- Im Code überprüft, gibt der Compiler eine Warnung aus;

';' - Semikolon unerwartet C:\Programmdateien\

Wenn es funktioniert, können wir dann auch die Warnung in Kauf nehmen?!

if (!A && !B && !C && !D) return(0); //закончение действия программы
else Action();
 
paladin80:

Ich danke Ihnen vielmals! So einfach ist das!

Allerdings musste ich diesen Block an das Ende des Starts setzen, weil return(0) nichts anderes mehr zuließ.

 
Hat überhaupt jemand die Geschwindigkeit gemessen? )))
 
TheXpert:
Hat jemand die Geschwindigkeit überhaupt gemessen? )))

Ich werde eine Messung vornehmen!

Ich habe es endlich gemessen! Es ist 17.26 Uhr! Das ist 10 Minuten länger als das beste if() ohne Tricks in sechs Monaten im Tester. Es tut mir leid, aber daran lässt sich nichts ändern! Ich werde weiter graben! Vielen Dank an alle! Aber es ist noch zu früh, um ein Fazit zu ziehen!

 
borilunad:

Wenn das, was ich hervorgehoben habe, möglich ist, dann wäre es gut, es so zu machen:

Wie? Ist das möglich? -------------------------- Im Code überprüft, gibt der Compiler eine Warnung aus;

';' - Semikolon unerwartet C:\Programmdateien\

Wenn es funktioniert, können wir dann auch die Warnung in Kauf nehmen?!


Es wird eine Warnung ausgegeben, falls jemand einfach ein Komma an die falsche Stelle gesetzt hat(der leere ';'-Operator wird nicht oft verwendet). Diese Konstruktion funktioniert und ist völlig legal.
 
borilunad:
Ich werde eine Messung vornehmen!

Sie müssen jedoch alle Optionen prüfen. Sonst könnten Sie sich irren.
 
borilunad:

Wenn das, was ich hervorgehoben habe, möglich ist, dann wäre es eine gute Idee, es so zu machen:

Wie? Ist das möglich? -------------------------- Im Code überprüft, gibt der Compiler eine Warnung aus;

';' - Semikolon unerwartet C:\Programmdateien\

Wenn es funktioniert, können wir dann auch die Warnung in Kauf nehmen?!

Um die Warnungen weniger störend zu machen, verwenden Sie: {}

if (!A && !B && !C && !D) {} //пустой оператор
else Action();

 
PapaYozh:

Um zu verhindern, dass Warnungen Ihre Augen überladen, verwenden Sie {}: {}

Ich danke Ihnen! Ich werde diese Klammern jetzt ausprobieren!
Grund der Beschwerde: