Per controllo del flusso si intendono tutte quelle strutture che cambiano l’ordine delle istruzioni, cicli, if-else, while, for, break etc. etc.
Qui trovate alcuni esercizi commentati che potrebbero servirvi
ESERCIZIO1: If-Else
If else crea un “bivio”. Se la condizione dentro l’if è verificata esegue un’ istruzione, se non è verificata ne esegue un’altra. La sintassi è:
Si può anche aggiungere un’altra condizione aggiuntiva usando “else if”
Fai un programma che prende un intero dall’utente e ti dice se l’intero è positivo, negativo o è zero
Breakdown
int numero;
: Dichiarazione di una variabile intera.printf("Inserisci un numero intero: ");
: Stampa del messaggio per chiedere all’utente di inserire un numero.scanf("%d", &numero);
: Utilizzo discanf
per leggere un numero intero dall’utente e memorizzarlo nella variabilenumero
.if (numero > 0) { ... } else if (numero < 0) { ... } else { ... }
: Struttura di controllo del flusso che verifica se il numero è positivo, negativo o zero, e stampa un messaggio di conseguenza.
ESERCIZIO2: Ciclo While
Il ciclo while è una delle strutture principali del control flow di ogni linguaggio di programmazione. esegue le istruzioni nel blocco fino a che è verificata la condizione tra parentesi.
La sintassi è
Stampa i numeri da 1 a cinque con un ciclo while
Breakdown
int contatore = 1;
: Dichiarazione e inizializzazione di una variabile contatore.while (contatore <= 5) { ... }
: Fino a che il contatore è minore di cinque, stampa il valore del contatore, e lo aumenta. Quindi all’inizio il contatore è 1, siccome è minore di cinque, viene eseguito il corpo del while, stampo il contatore e lo aumento, così diventa 2, siccome è ancora minore di 5 eseguo il corpo del while, stampo 2, aumento il contatore che diventa 3… e così via
Ciclo For
Il ciclo for in C funzina così: for(da; condizione; incremento)
ma cosa significa? prendiamo un esempio:
questo ciclo parte da 0. (i=0) incrementa l’iteratore di uno (i++) e continua fino a quando l’teratore è minore di 3(i⇐3)
ESERCIZIO 3:
fai un programma che stampa i numeri da 1 a cinque usando un ciclo for
ESERCIZIO4: Switch
Lo switch è un modo di controllare molteplici condizioni insieme senza dover scrivere duecentomila condizioni if-else.
sintassi:
in questo caso se x assume il voler 1 allora esegue l’istruzione 1, se x assume il valore 2 allora esegue l’istruzione 2. etc..
ESERCIZIO: scrivere un programma che prende in input un numero tra 1 e 3 e ti dice se hai scelto 1, 2, 3 o se hai inserito un numero non valido
Breakdown
int scelta;
: Dichiarazione di una variabile per la scelta.printf("Scegli un numero tra 1 e 3: ");
: Stampa del messaggio per chiedere all’utente di scegliere un numero.scanf("%d", &scelta);
: Utilizzo discanf
per leggere la scelta dell’utente.switch (scelta) { ... }
: Struttura switch che gestisce diverse opzioni in base alla scelta dell’utente.
ESERCIZIO5: Do-While
Il do-while è equivalente al while. La differenza è che il do-while valuta la condizione DOPO aver eseguito il corpo. Cioè ti garantisce l’esecuzione del corpo almeno una volta. TIPO:
mentre con un while normale
ESERCIZIO: fai un programma che prende stampa i numeri da 1 a 5 usando il ciclo do-while
Breakdown
int contatore = 1;
: Dichiarazione e inizializzazione di una variabile contatore.do { ... } while (contatore <= 5);
: Ciclo do-while che stampa i numeri da 1 a 5 e incrementa il contatore ad ogni iterazione. Il ciclo viene eseguito almeno una volta, anche se la condizione è falsa inizialmente.
ESERCIZIO6: Break e Continue
Break interrompe il ciclo in cui si trova.
in questo esempio il ciclo for viene interrotto prima ancora di finire (anzi viene interrotto alla prima istruzione).
CONTINUE: il continue, invece di interrompere il ciclo come farebbe il break, salta le istruzioni sotto ma continua con il ciclo senza interrompersi.
questo esempio stampa tutti i numeri da 0 a 4 ma salta il 3.
ESERCIZIO: fai un programma che stampa i numeri da 1 a 10 ma si interrompe appena trova un numero pari. Successivamente, il programma stampa tutti i numeri dispari da 1 a 10 DISPARI usando il “continue”.
Breakdown
- Prima parte: Utilizzo di
break
per interrompere un ciclo se il numero è pari. - Seconda parte: Utilizzo di
continue
per passare alla prossima iterazione del ciclo se il numero è pari, evitando la stampa di numeri pari.
PER CONTINUARE
per continuare, ci sono degli esercizi sugli array: esericizi sugli array