Overbasic – IF .. THEN .. ELSE

Le parole chiavi IF, THEN e ELSE permettono di condizionare l’esecuzione di un insieme di istruzioni. In altre parole, blocchi di istruzioni possono essere eseguiti solo al verificarsi di alcune specifiche condizioni.

Sintassi #

If <condizione> Then
    <istruzioni blocco IF..THEN> 'da eseguire se <condizione> è TRUE
Else
    <istruzioni blocco ELSE> 'da eseguire se <condizione> è FALSE
EndIf

L’istruzione IF è composta da due blocchi:

Blocco IF..THEN: (obbligatorio) le istruzioni contenute in questo blocco vengono eseguite SOLO se <condizione> è TRUE

Blocco ELSE: (opzionale) le istruzioni contenute in questo blocco vengono eseguite SOLO se <condizione> è FALSE

<condizione> è una qualsiasi equazione/disequazione (o un insieme di equazioni/disequazioni legate tra loro da AND / OR)

I due blocchi di istruzioni IF..THEN e ELSE possono contenere qualsiasi tipo di istruzione comprese altre istruzioni IF.. THEN..ELSE (annidate):

If <condizione1> Then
    If <condizione2> Then
        ...
        ...
    EndIf
Else
    If <condizione3> Then
        ...
    Else
        ...
    EndIf    
EndIf

In caso di più istruzioni IF annidate, alcune volte è conveniente utilizzare una sintassi alternativa (semplificata) che fa uso della parola chiave ELSEIF:

If <condizione1> Then
    ...
ElseIf <condizione2> Then
    ...
ElseIf <condizione3> Then
    ...
Else
    ...
EndIf

Utilizzo #

IF..THEN senza blocco ELSE:

If (Close > Open) Then
    PositiveBars = PositiveBars + 1
EndIf

If (Close > Open) And (Close > Close(-1)) Then
    PositiveTrend = True
EndIf

IF..THEN con blocco ELSE:

If (Close > Open) Then
    PositiveBars = PositiveBars + 1
Else
    NegativeBars = NegativeBars + 1
EndIf

IF..THEN..ELSE annidati:

If (Close > Open) Then
    PositiveBars = PositiveBars + 1
Else
    If (Close = Open)
        NeutralBars = NeutralBars + 1
    Else
        NegativeBars = NegativeBars + 1
    EndIf
EndIf

IF..THEN..ELSE con blocco ELSEIF:

If (Close > Open) Then
    PositiveBars = PositiveBars + 1
ElseIf (Close = Open)
    NeutralBars = NeutralBars + 1
Else
    NegativeBars = NegativeBars + 1
EndIf