Einzelnen Beitrag anzeigen
  #4 (permalink)  
Alt 09.10.17
mat mat ist offline
Neues Mitglied
 
Registriert seit: Oct 2017
Beiträge: 16
mat befindet sich auf einem aufstrebenden Ast
Standard

Hi,

fein, freut mich.

Aufpassobacht, ich glaube, ich habe in dem Codestück mglw. einen Fehler gefunden:

Code:
//---
for(int i=0;i<OrdersTotal();i++)
   {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false ) break;
    if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!=Symbol()) continue;
    :
Wenn das OrderSelect schief geht, wird die Schleife VERLASSEN, also für keine weitere Order ausgeführt. Ist es das, was Du willst? Oder soll nur dieser Durchgang unterdrückt werden? In dem Fall müsstest du auch da ›continue‹ verwenden!

Datentyp boolean:

George Boole war ein britischer Mathematiker, der sehr viel zum Themengebiet Logik beigetragen hat. Aus diesem Grund trägt der Datentyp für ›logische Variable‹ in sehr, sehr vielen Programmiersprachen den Namen bool oder boolean.

Was ist eine boolesche Variable?

Das ist eine Variable, die nur 2 Werte annehmen kann: true oder false.

Gleichzeitig sind das aber auch die einzig möglichen Ergebnisse von Vergleichen etc. (das, was beim if in Klammern steht). Anders gesagt: man /kann/ einen Vergleich in einem if verwenden, kann ihn aber auch einer booleschen Variable zuweisen. Ganz so, wie man a = 2+3; schreiben kann, wenn a eine integer (Ganzzahl) Variable ist, kann man b = ( a>=3 ); schreiben, wenn b mit dem Datentyp bool deklariert ist.

Dann kann man das b auch direkt beim if benützen:

Code:
if ( b ) { …
Natürlich ist es gut für die Lesbarkeit, wenn die Variable nicht b heißt, sondern einen sprechenden Namen hat.

Code:
bool newCandle = false;
:
if (irgendwas==wasAnderes) newCandle = true;
:
if (newCandle)
{
   ...
}
:
Eine weitere Möglichkeit wäre bool als Ergebnistyp einer Funktion.

Code:
bool meineFunktion( int a, float b) { ... }
und an anderer Stelle im Code

Code:
if ( meineFunktion ( 3, 2.5 ) ) { …
wodurch man sehr intelligente Tests entwicjkeln kann, indem man den komplexen Code in der Funktion versteckt, die dann nur noch true oder false liefert.

Namenshinweis: ich (aber das ist nur mein Stil, das hat mit richtig oder falsch nichts zu tun) verwende gerne ein Hilfszeitwort und ein Hauotwort für Namen boolescher Variablen oder FUnktionen:

hatEtwas
kannDasunddas
weißUhrzeit ()

usw.

LG