if else Verschachtelung

Posted By: Olchi

if else Verschachtelung - 02/14/11 14:19

Hallo,
in einer Funktion muß ich bevor ich etwas berechne 4 unterschiedliche Variabeln nacheinander prüfen.
das mache ich natürlich mit "if...else".
Wenn alle vier "ja" ergeben, dann rechne, sonst blablabla...
Ich komme völlig durcheinander mit den ganzen Klammern, brauche
HILFE

Olchi
Posted By: Clemens

Re: if else Verschachtelung - 02/14/11 14:24

long:
Code:
if ((var1==1) && (var2==1) && (var3==1) && (var4==1)) {
	...
}


short:
Code:
if (var1 && var2 && var3 && var4) {
	...
}


Posted By: muffel

Re: if else Verschachtelung - 02/14/11 14:25

du kannst dinge logisch mit "und" (&&) und "oder" (||) verknüpfen
if( bedingung1 && bedingung2 && bedingung3 && bedingung4 )
{
wird getan wenn alle 4 bedingungen wahr sind
}

muffel
EDIT da war wer schneller
Posted By: Olchi

Re: if else Verschachtelung - 02/14/11 14:40

Danke,
werde gleich mal probieren.
Wenn die Überprüfung jeder einzelnen Var sehr lang ist, möchte ich der Übersichtlichkeit halber die Zeile umbrechen...einfach mit Return-Taste?
Oder wird es dann als Zeilenende gewertet?

Olchi
Posted By: hopfel

Re: if else Verschachtelung - 02/14/11 14:45

Du kannst Abstände und Absätze reinbauen wie du willst,
solange du Variabelnamen etc. nicht durchtrennst. ^^
LG
Posted By: Olchi

Re: if else Verschachtelung - 02/14/11 14:51

Danke an alle,
hat alles geklappt!!!

Olchi
Posted By: Damocles_

Re: if else Verschachtelung - 02/14/11 15:15

Nimm in solche Situationen besser eine temporäre variable,
damit dein Code übersichtlich bleibt.
Wenn du alles in die einzelne IF Abfrage packst, und die Übersichtlichkeit
verlierst ist das nur eine unnötige Quelle für Bugs.

Schick verkürzter Code macht nur Sinn wenns um
Geschwindigkeit geht.
Ansonsten ist übersichtlicher Code wichtiger.
Posted By: WretchedSid

Re: if else Verschachtelung - 02/14/11 15:45

Originally Posted By: Damocles_
Schick verkürzter Code macht nur Sinn wenns um
Geschwindigkeit geht.
Ansonsten ist übersichtlicher Code wichtiger.


Nicht vergessen: Boolsche Arithmetik lernen, damit wird das lesen von if Abfragen einfacher.
Posted By: HeelX

Re: if else Verschachtelung - 02/14/11 15:48

Originally Posted By: Damocles_
Schick verkürzter Code macht nur Sinn wenns um
Geschwindigkeit geht. Ansonsten ist übersichtlicher Code wichtiger.


Es macht heutzutage keinen Sinn mehr Code per Hand durchzuoptimierten und "kurzen" Code zu schreiben, da so gut wie jeder moderne Compiler "normalen" Code bereits durchoptimiert - wobei das jetzt bei Lite-C ja vielleicht nicht unbedingt an der Tagesordnung sein muss ;-)

Bei Spielen ist sowieso der bottleneck nicht die if-Abfrage mit den 4 Variablen, das wäre mal echt was Neues smile
Posted By: Damocles_

Re: if else Verschachtelung - 02/17/11 10:04

Bei Operationen die in sehr schnellen langlaufenden Schleifen
ausgeführt werden (zB Kollisionserkennung, AI Tiefensuche)
hat die Codestruktur schon einen großen Einfluss auf die Performance.
(zB keine funktionen mit parametern aufrufn,sondern inline
ausführen. Keine temporären variablen neu deklarieren.)

Reine "one time" Berechnungen muß man allerdings nicht optimieren.

Ich sehe oft daß Java Programmierer trinary Operationen
nutzen, die oft den Code unübersichtlich machen.
Allerdings sieht der kompilierte Bytecode letztendlich genauso aus wie
ne klassische If else Abfrage.
Somit hat das optimieren in dem Fall gar keinen Effekt.
Posted By: Michael_Schwarz

Re: if else Verschachtelung - 02/17/11 13:57

Originally Posted By: Damocles_
Bei Operationen die in sehr schnellen langlaufenden Schleifen
ausgeführt werden (zB Kollisionserkennung, AI Tiefensuche)
hat die Codestruktur schon einen großen Einfluss auf die Performance.
(zB keine funktionen mit parametern aufrufn,sondern inline
ausführen. Keine temporären variablen neu deklarieren.)

Reine "one time" Berechnungen muß man allerdings nicht optimieren.

Ich sehe oft daß Java Programmierer trinary Operationen
nutzen, die oft den Code unübersichtlich machen.
Allerdings sieht der kompilierte Bytecode letztendlich genauso aus wie
ne klassische If else Abfrage.
Somit hat das optimieren in dem Fall gar keinen Effekt.


Aber... aber! Es lässt doch den code so viel guru-iger aussehen als mit so nem noobigen if/else!!!11!!11!!drölf Weil! Ähm... Aber....!
Posted By: Tempelbauer

Re: if else Verschachtelung - 02/17/11 13:58

Quote:
Ich sehe oft daß Java Programmierer trinary Operationen
nutzen, die oft den Code unübersichtlich machen.

Meinst du Ternäre Operationen?
Ich persönlich habe mich an sie gewöhnt. Ein Code mit ihnen ist für mich genauso gut lesbar wie einer mit klassischen ifs. Allerdings nur wenn vernünftig eingerückt wird (wozu die meisten nicht in der lage sind)!

Code:
var x = y==z?a:b;  //das brauch ich auch nicht

var x = (y==z) ? (a) : (b);  //meine schreibweise bei tenären operatoren

if(x==y) { //if-schreibweise die ich unübersichtlich finde und gar nicht leiden kann
   x = a;
}

if (x==y) //so geht das
{
   x = a;
}


© 2024 lite-C Forums