STRUTTURE DI CONTROLLO DEL FLUSSO DI ESECUZIONE (schema essenziale) Per comunicare correzioni o aggiunte: tommaso.gastaldi@gmail.com ________________________________________ strutture ITERATIVE (cicli, loop) __________________________________________ C# Loops: do { // ... istruzioni all'interno del loop } while (condizione); ------------------------------------------------------------------------------ while (condizione) { // ... istruzioni all'interno del loop } ------------------------------------------------------------------------------ while (true) { // ... istruzioni all'interno del loop if (condizione) { break; } // ... istruzioni all'interno del loop } ------------------------------------------------------------------------------ for (int i = primo; i <= ultimo; i++) { // ... istruzioni all'interno del loop } ------------------------------------------------------------------------------ foreach (var item in collezione) { // ... istruzioni all'interno del loop } ------------------------------------------------------------------------------ Per saltare cicli: continue; per loop infiniti: while (true) { //Do My Loop Stuff } oppure for (;;) ================================================================================ VB.NET Loops: Do '... istruzioni all'interno del loop Loop While/Until condizione ------------------------------------------------------------------------------ Do While/condizione '... istruzioni all'interno del loop Loop ------------------------------------------------------------------------------ While condizione '... istruzioni all'interno del loop End While ------------------------------------------------------------------------------ Do '... istruzioni all'interno del loop If condizione Then Exit Do '... istruzioni all'interno del loop Loop ------------------------------------------------------------------------------ For i As Integer = primo To ultimo '... istruzioni all'interno del loop Next ------------------------------------------------------------------------------ For Each item In collezione '... istruzioni all'interno del loop Next ------------------------------------------------------------------------------ Per saltare cicli: Continue Do, Continue While, Continue For ________________________________________ strutture CONDIZIONALI (strutture di controllo condizionale) __________________________________________ C# if (condizione1) { //... istruzioni da eseguire se condizione1 vera } else if (condizione2) { //... istruzioni da eseguire se condizione2 vera } else if (condizione3) { //... istruzioni da eseguire se condizione3 vera } else { //... istruzioni da eseguire altrimenti } multiway branching: switch (nomeVariabile) { case Valore1: //... istruzioni da eseguire se nomeVariabile = Valore1 break; case Valore2: //... istruzioni da eseguire se nomeVariabile = Valore2 break; case Valore3: case Valore4: // Esempio di 2 case impilati uno sopra all'altro default: //... istruzioni da eseguire se non si incontra un break precedente break; } ------------------------------------------------------------------------------ VB.NET If condizione1 Then '... istruzioni da eseguire se condizione1 vera ElseIf condizione2 Then '... istruzioni da eseguire se condizione2 vera ElseIf condizione3 Then '... istruzioni da eseguire se condizione3 vera Else '... istruzioni da eseguire altrimenti End If multiway branching: Select Case NomeVariabile Case Inizio To Fine '... istruzioni da eseguire se NomeVariabile tra Inizio e Fine Case Valore1, Valore2, Valore3 '... istruzioni da eseguire se NomeVariabile = Valore1 o Valore2 o Valore3 Case Is = Valore4 '... istruzioni da eseguire se NomeVariabile = Valore5 Case Else '... istruzioni da eseguire altrimenti End Select ________________________________________ strutture gestione ECCEZIONI __________________________________________ C# Exception handling: try { codice da tenere sotto controllo } // eccezioni piĊ³ specifiche prima catch (ArgumentNullException e) { cose da fare in caso di eccezione } // eccezioni meno specifiche dopo catch (Exception e) { cose da fare in caso di eccezione } catch (COMException e) when (e.ErrorCode == 0x1234) { // esempio con clausola when } finally { cose da fare in ogni caso (mai mettere un Return o Throw qui) } ------------------------------------------------------------------------------ VB.NET Exception handling: Try codice da tenere sotto controllo (Exit Try per uscire in caso) Catch exception As type When espressione cose da fare in caso di eccezione (Exit Try per uscire in caso) [altri eventuali blocchi catch] Catch ex As SqlException When ex.Number = 547 'esempio di clausola when Finally opzionale: cose da fare in ogni caso (mai mettere un Return o Throw qui) End Try Lista eccezioni https://www.completecsharptutorial.com/basic/complete-system-exception.php ** Altri statement utili ** ________________________________________ Using statement __________________________________________ C# using (var reader = new StringReader(NomeFileOStringa)) { ... } ------------------------------------------------------------------------------ VB.NET Using sr As New StreamReader(NomeFileOStringa) ... End Using ________________________________________ checked statement __________________________________________ C# (enable overflow checking for integral-type arithmetic operations and conversions) checked { ... }