Apri il menu principale

Selezione (informatica)

In informatica, nell'ambito della programmazione, la selezione (detta anche struttura condizionale) è, all'interno di un algoritmo risolutivo di un problema dato, una struttura di controllo del flusso di esecuzione di un programma che indica all'elaboratore, in base alla verifica di una condizione logica specificata, quale fra due sequenze o blocchi di istruzioni eseguire, realizzando dunque un controllo logico di elaborazione. Assieme alla sequenza e all'iterazione è una struttura fondamentale per la risoluzione algoritmica di un dato problema secondo il Teorema di Böhm-Jacopini.

In sintesi stiamo parlando di IF e di ELSE.

DescrizioneModifica

La forma più conosciuta è tipicamente (in pseudocodice):

SE (condizione) ALLORA

(blocco per condizione vera)

ALTRIMENTI

(blocco per condizione falsa)

FINE-SE

Esempio in C
if (condizione) { /* THEN in C non esiste, mentre in Pascal e BASIC esiste. */
  /* blocco per condizione vera */
  ...;
  ...;
} else {
  /* blocco per condizione falsa */
  ...;
  ...;
} /* Anche ENDIF in C non esiste. */

In alcuni linguaggi, come il C, il Perl o il Java, la selezione può assumere la forma minima (il SE è assente, ALLORA diventa un punto interrogativo, ALTRIMENTI diventa un :, il FINE-SE è assente):

(condizione) ? (blocco per condizione VERA) : (blocco per condizione FALSA).
In C è detto operatore ternario.

Esempio in C
/* Per porre z al massimo tra a e b. */
z=(a>b)?a:b;

Un caso particolare di selezione è il SELEZIONA - CASI:

SELEZIONA - CASI variabile

CASO valore1:

(sequenza1)

CASO valore2:

(sequenza2)

(. . .)

CASO DEFAULT:

(sequenza di default)

FINE-CASI

Esempio in C
switch(variabile){
  case valore1:
    /*sequenza1*/
    ...;
    ...;
    break;
  case valore2:
    /*sequenza2*/
    ...;
    ...;
    break;
  ( . . . )
  default: // Questo blocco non è obbligatorio.
    /*sequenza di default*/
    ...;
    ...;
    break;
  }

Con il SELEZIONA - CASI, viene eseguita solo una fra le sequenze proposte, a seconda del valore contenuto nella variabile.

Qualora variabile = valore1, allora verrà eseguita la sequenza1; se variabile = valore2, allora verrà eseguita la sequenza2; se non ci sono casi particolari di variabile = valoreX, allora viene eseguito il caso DEFAULT.