Costrutto if

Note

Il costrutto if è il blocco di controllo più semplice in C. Ecco la sua struttura base:

if (condizione) {
  /* codice da eseguire se la condizione è vera */
  }

Nel diagramma, “Vera” significa qualsiasi valore diverso da zero, mentre “Falsa” significa zero. Questo è il comportamento standard in C per le condizioni.

Example

int numero = 5;
if (numero > 0) {
  printf("Il numero è positivo\n");
  }

Condizioni

Note

Le condizioni in C utilizzano operatori di confronto che ritornano 0 (falso) o 1 (vero).

/* Operatori di confronto */
int x = 5;
int y = 3;
 
int risultato = (x == y);	/* Uguaglianza (0) */
int diverso = (x != y);	 /* Diversità (1) */
int maggiore = (x > y);	 /* Maggiore di (1) */
int minore = (x < y);	   /* Minore di (0) */
int maggioreuguale = (x >= y);  /* Maggiore o uguale (1) */
int minoreuguale = (x <= y);	/* Minore o uguale (1) */

Operatori Logici

Note

Gli operatori logici combinano più condizioni.

/* Operatori logici */
int risultato = (x > 0 && y < 10);  /* AND logico (1) */
risultato = (x > 0 || y < 10);	   /* OR logico (1) */
risultato = !(x == y);			   /* NOT logico (1) */

Costrutto if-else

Note

Il costrutto if-else permette di eseguire un blocco di codice alternativo quando la condizione è falsa:

if (condizione) {
  /* codice da eseguire se la condizione è vera */
  } else {
  /* codice da eseguire se la condizione è falsa */
  }

Example

int numero = 5;
if (numero > 0) {
  printf("Il numero è positivo\n");
  } else {
  printf("Il numero è negativo o zero\n");
  }

Costrutto if-else if

Note

Per controllare più condizioni sequenzialmente:

if (condizione1) {
  /* codice da eseguire se condizione1 è vera */
  } else if (condizione2) {
  /* codice da eseguire se condizione1 è falsa e condizione2 è vera */
  } else {
  /* codice da eseguire se tutte le condizioni sono false */
  }

Example

int numero = 5;
if (numero > 0) {
  printf("Il numero è positivo\n");
  } else if (numero == 0) {
  printf("Il numero è zero\n");
  } else {
  printf("Il numero è negativo\n");
  }

Costrutto Switch

Note

Il costrutto switch è una struttura di controllo che permette di eseguire uno dei molti blocchi di codice in base al valore di un’espressione. È particolarmente utile quando si devono gestire molte condizioni diverse su un singolo valore.

switch (espressione) {
  case valore1:
  	/* codice da eseguire per valore1 */
  	break;
  	case valore2:
  	/* codice da eseguire per valore2 */
  	break;
  	default:
  	/* codice da eseguire se nessun caso corrisponde */
  	break;
  	}
  	```
  	>[!tip]- Flusso di esecuzione
  	>```mermaid
  	>flowchart TD
  	>	A[Inizio] --> B[Esegui espressione switch]
  	>	B --> C{Confronta con case}
  	>	C -->|Corrispondenza trovata| D[Esegui codice case]
  	>	C -->|Nessuna corrispondenza| E{Esiste default?}
  	>	D --> F{Presente break?}
  	>	F -->|| G[Salta al termine]
  	>	F -->|No| H[Continua con case successivo]
  	>	E -->|| I[Esegui codice default]
  	>	E -->|No| J[Salta al termine]
  	>	G --> K[Fine]
  	>	H --> K
  	>	I --> K
  	>	J --> K
  	>```

Example

int giorno = 2;
 
switch (giorno) {
  case 1:
  	printf("Lunedì\n");
  	break;
  	case 2:
  	printf("Martedì\n");
  	break;
  	case 3:
  	printf("Mercoledì\n");
  	break;
  	case 4:
  	printf("Giovedì\n");
  	break;
  	case 5:
  	printf("Venerdì\n");
  	break;
  	case 6:
  	printf("Sabato\n");
  	break;
  	case 7:
  	printf("Domenica\n");
  	break;
  	default:
  	printf("Giorno non valido\n");
  	break;
  	}
  	```