Der Martin: IF-Konstrukt kürzen

Beitrag lesen

Hallo,

Hoffentlich nicht mit Steels mangelhafter Lösung.
Hab ich was falsch verstanden?

schon möglich. Ich gehe nämlich davon aus, dass das Beispiel von jens65m stark eingekürzt ist, sonst würden dir verschachtelten if-Statements ja keinen Sinn ergeben bzw. wären trivial. Dann wäre deine Lösung auch völlig okay.

Ich war der Meinung das hier waere gewollt:
wert:true bedingung:false
Do nothing.

wert:true bedingung:true
Do it Baby!

wert:false bedingung:false
Do it Baby!

wert:false bedingung:true
Do it Baby!

Ich gehe eher davon aus, dass da in Wirklichkeit ungefähr diese Struktur vorliegt:

if (A)  
 { Block1();  
   if (B)  
    { Block2();  
    }  
   Block3();  
 }  
else  
 { Block2();  
 }

Wenn Bedingung A zutrifft, wird Block2() also von Block1() und Block3() eingerahmt, falls er überhaupt ausgeführt wird.
Ohne Block1() und Block3() kann man tatsächlich die beiden Bedingungen mit ein wenig Boolscher Algebra zusammenfassen, so wie du es getan hast. Das kommt mir aber so trivial vor, dass ich mir nicht vorstellen kann, dass der OP das wissen wollte.

Davon abgesehen hatte ich befürchtet, dass du dich mit der Operator-Rangfolge verzettelt hast, denn das ausgeschriebene 'or' hat eine andere Rangstufe als das Symbol ||. Im Verhältnis zu einem Vergleichsoperator haben sie aber beide eine niedrigere Priorität.

So long,
 Martin

--
Wenn die Amerikaner eines Tages von jeder Tierart ein Pärchen nach Cape Canaveral treiben ...
ja, DANN sollte man endlich misstrauisch werden.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(