---
title: Overbasic – Select Case
description: "L'istruzione SELECT CASE viene utilizzata per selezionare quale blocco di istruzioni eseguire in base al valore di una certa espressione. ### **Sintassi** ``` Select Case Case [, , ] Case [, , ] Case [, , ] [Case Else] []…"
url: "https://www.overcharts.com/it/helpcenter/docs/overbasic-select-case/"
updated: "2022-11-25"
category: "Overbasic / Sintassi & Parole Chiave"
---

# Overbasic – Select Case

L'istruzione SELECT CASE viene utilizzata per selezionare quale blocco di istruzioni eseguire in base al valore di una certa espressione.

### **Sintassi**

```
Select Case <espressione>
Case <valore/espressione>[, <valore/espressione>, <valore/espressione>]
    <blocco di istruzioni>
Case <valore/espressione>[, <valore/espressione>, <valore/espressione>]
    <blocco di istruzioni>
Case <valore/espressione>[, <valore/espressione>, <valore/espressione>]
    <blocco di istruzioni>
[Case Else]
    [<blocco di istruzioni CASE ELSE>]
EndSelect
```

- <espressione> è una qualsiasi espressione numerica
- I vari <valore/espressione> presenti nei *Case* sono espressioni o valori numerici da confrontare con il valore di <espressione>. Ogni *Case* può avere diversi <valore/espressione> separati da virgola.
- Il blocco **Case Else** è ***facoltativo*** e viene eseguito solo se non è trovata alcuna corrispondenza tra il valore di <espressione> e i vari **Case**

**Funzionamento**:
1) Viene calcolato il valore di <espressione>
2) Il valore di <espressione> viene confrontato con i valori dei vari **Case**
3) Se c'è una corrispondenza con uno dei valori dei *Case*, viene eseguito il blocco di codice associato
4) Se NON c'è alcuna corrispondenza viene eseguito (se presente) il blocco di codice associato a **Case Else**

**Esempi**:

```
'Calcoliamo il nome del mese in base al numero del mese.
'In questo esempio non è presente il CASE ELSE.

Dim month As Numeric = 5

Select Case month
Case 1
    monthName = "January"
Case 2
    monthName = "February"
Case 3
    monthName = "March"
Case 4
    monthName = "April"
Case 5
    monthName = "May"
Case 6
    monthName = "June"
Case 7
    monthName = "July"
Case 8
    monthName = "August"
Case 9
    monthName = "September"
Case 10
    monthName = "October"
Case 11
    monthName = "November"
Case 12
    monthName = "December"
EndSelect

'Il risultato è: May
```

```
'Calcoliamo il numero di giorni di un mese, in base al numero del mese

Dim month As Numeric = 5
Dim daysInMonth As Numeric = 0

Select Case month
Case 2
    'controllo se l'anno è bisestile
    If (Math.Mod(Year, 400) = 0) Or ((Math.Mod(Year, 4) = 0) And (Math.Mod(Year, 100) <> 0)) Then
        daysInMonth = 29
    Else
        daysInMonth = 28
    EndIf
Case 4, 6, 9, 11
    daysInMonth = 30
Case Else
    daysInMonth = 31
EndSelect

'Il risultato è: 31
```
