Strutture condizionali

Le strutture condizionali, anche dette strutture di controllo “alternative”,  consentono di specificare che un dato blocco di istruzioni venga eseguito “(solo) se” vale una certa condizione. Le principali e più utilizzate strutture condizionali sono:

  • Struttura if-then e if-then-else
  • Struttura alternative case

Queste due strutture sono sostanzialmente molto simili. La struttura if-then (se-allora) può essere parafrasata con la frase “se vale la condizione C, allora esegui il blocco di istruzioni I“. Il controllo della condizione avviene, naturalmente, prima dell’esecuzione del blocco di istruzioni. La maggior parte dei linguaggi di programmazione ammette anche la struttura if-then-else che consiste in una catena di strutture if-then controllati in sequenza. Può essere parafrasata con la frase “se vale la condizione C esegui il blocco di istruzioni I1, altrimenti esegui il blocco di istruzioni I2“. Questa struttura può ulteriormente essere complicata aggiungendo, nel blocco else un ulteriore struttura if-then-else, permettendo quindi di controllare più condizioni in sequenza.

L’alternative case può essere visto come una catena di if-then-else con certe restrizioni. In sostanza si tratta di una struttura if-then dove il blocco di istruzioni eseguito si basa sul valore di una determinata variabile o espressione (che normalmente assume valore intero). Può essere parafrasata con la frase “valuta l’espressione N: se il suo valore è V1 esegui il blocco di istruzioni I1; altrimenti se il suo valore è V2 esegui il blocco di istruzioni I2; …” e così via con quante condizione sono necessarie.

Queste due strutture sono entrambe supportate in C# e VB.net. In entrambi i linguaggi seguono la stessa struttura, con le differenze sintattiche tipiche dei due linguaggi. Di seguito sono riportati gli esempi del codice con cui queste strutture sono scritte nei due linguaggi.

VB.net

La struttura if-then-else in VB.net è codificata come segue:

If condition [ Then ]

    [ statements ]

[ Else

    [ elsestatements ] ]

End If

Inoltre, in VB.net è molto semplice (e immediato) l’utilizzo di una struttura if-then-elseif-then che permette di annidiare più condizioni if insieme, interrompendo il loro controllo alla prima condizione vera trovata. Viene codificata con la seguente sintassi:

If condition [ Then ]

    [ statements ]

[ ElseIf elseifcondition [ Then ]

    [ elseifstatements ] ]

[ Else

    [ elsestatements ] ]

End If

Naturalmente è possibile concatenare più elseif insieme.

La struttura alternative case invece segue la seguente sintassi:

Select [ Case ] testexpression  

    [ Case expressionlist  

        [ statements ] ]

    [ Case expressionlist  

        [ statements ] ]   

    [ Case Else  

        [ elsestatements ] ]  

End Select

C#

La struttura if-then-else in C# è codificata come segue:

if (condition)
{
    [ statements ];
}
else
{
    [ statements ];
}

Anche in questo caso è possibile concatenare abbastanza agilmente più condizioni if-else, anche se C# non ha una struttura dedicata appositamente a questo.

if (condition)
{
    [ statements ];
}
else
{
    if (condition)
    {
        [ statements ];
    }
    else
    {
        [ statements ];
    }
}

L’alternative case invece viene codificato come segue:

switch (caseSwitch)
      {
          case 1:
              [ statements ];
              break;
          case 2:
              [ statements ];
              break;
          default:
              [ statements ];
              break;
      }

Lascia un commento