Zitat:
Zitat von Indexreiter
Programmierer haben eben auch ihre Weltanschauung. Für mich ist Übersichtlichkeit immer wichtiger als Zeilenersparnis. Deshalb setze ich auch immer die öffnende Klammer genau unter das i vom if.
Solche und/oder-Monster vermeide ich wenn es geht. Geht es aber nicht, so würde ich dieses Beispiel der Übersicht halber so codieren:
PHP-Code:
if (Hour() == 8 && Minute() >58 && [B]!OpenAbstandAN[/B]
|| [B]Open[0] > Open[OpenAbstand][/B] && OpenAbstandAN
|| Bid > iMA(NULL, 0, MAPeriode, 0, MODE_SMA, PRICE_CLOSE, 1) && MovingAvarageControl
|| HandelszeitAN && Hour() < StartStunde
|| HandelszeitAN && Hour() > EndStunde)
{
//...
}
Mir erscheint das übersichtlicher und pflegeleichter, da Zufügen oder Herausnehmen einer Bedingung nur immer eine Code-Zeile betreffen.
|
Ja, das Wort Weltanschauung trifft es schon ganz gut, denn viele Wege führen nach Rom.
So kann man es auch schreiben, wobei ich darauf aufmerksam machen möchte, dass die ODER-Verknüpfungen direkt mit dem vorherigen Ausdruck in Beziehung stehen, d.h. in gewisser Weise hängen:
Hour() == 8 && Minute() > 58 &&
OpenAbstandAN == false || Open[0] > Open[OpenAbstand]
miteinander zusammen, denn es muss entweder OpenAbstandAN == false
oder Open[0] > Open[OpenAbstand] true sein. Also sollten diese Abfagen von der Logik her auch in einer Zeile stehen. d.h. man hätte also konsequenterweise auch noch schreiben können:
Code:
if (Hour() == 8 && Minute() > 58) {
if (OpenAbstandAN == false || Open[0] > Open[OpenAbstand]) {
...
Ebenso wie
OpenAbstandAN || Bid > iMA(NULL, 0, MAPeriode, 0, MODE_SMA, PRICE_CLOSE, 1)
in eine Zeile gehören usw.
Und ob der TE den Code von der boolschen Logik überhaupt so meinte, ist noch eine ganz andere Frage.
Würde nämlich vor Open[0] > Open[OpenAbstand] eine öffnende runde Klammer ( und z.B. nach OpenAbstandAN eine anschließende runde Klammer ) stehen, dann wäre die boolsche Logik eine ganz andere:
Code:
if (... && OpenAbstandAN == false || (Open[0] > Open[OpenAbstand] && OpenAbstandAN) ...
"@Adlerauge - Auf die Idee, alle schließenden Klammern in eine Zeile zu setzen, bin ich auch noch nicht gekommen."
Ne, auf diese Idee wäre ich aus Gründen der Optikverletzung auch nie gekommen!
traderdoc