C++ Strutture di Controllo

Scritto da ambrix on . Postato in Corsi Programmazione, NotInHome Nessun Commento

logo programmazione c++

Lezione#04 Il C++ è forse il linguaggio di programmazione a oggetti più conosciuto nel mondo informatico. In questa lezione affronteremo l’argomento Strutture di Controllo.

Il linguaggio C++, oltre ad essere da anni argomento didattico degli ITIS ad indirizzo informatico, è molto usato in ambiente scientifico. Inoltre lo ritroviamo anche in applicazioni per il gaming e nello sviluppo di GUI.

Nelle lezioni precedenti abbiamo scritto codice, seguendo un percorso “sequenziale”. In effetti, si scorre il codice, riga per riga fino alla fine del listato. Tuttavia, possiamo controllare il flusso di esecuzione del nostro programma.

// Esempio #01

#include <cstdlib>
#include <iostream>
using namespace std;

int main()
{
  cout << "Print this";
  exit(0);
  cout << "Don't print this";
}

Print this

Nel primo esempio attraverso la funzione  exit(0) , diciamo al compilatore di uscire dall’esecuzione, subito dopo avere stampato a video la scritta “Print this”.

Exit richiede 0 come argomento, proprio come restituiamo 0 quando si esce normalmente. Dobbiamo anche includere la libreria  cstdlib.

Ci sono altri modi per controllare il flusso. Possiamo dire al nostro programma, di eseguire un blocco di codice solo se viene soddisfatta una determinata condizione. Proviamo a stampare la dichiarazione tra parentesi nel prossimo esempio.

// Esempio #02

if (100 > 50)
{
 cout << "Print if true" << endl;
}
cout << "Print always";

Print if true
Print always

Il blocco di codice interno all’ istruzione if  verrà eseguito solo se la condizione data è vera. Il blocco esterno funzionerà sempre.

Possiamo prendere ulteriormente controllo del flusso di esecuzione, usando l’ istruzione else .

// Esempio #03

if (!true)
{
 cout << "Don't print this!";
}
else
{
 cout << "Print this!";
}

Print this

Quando la condizione if è falsa, verrà eseguito il blocco  else del codice. Nell’esempio #03 la condizione è !true, ossia false (la negazione di true è false).

In alcuni casi potremmo voler eseguire più istruzioni if. A tal proposito ricorriamo all’istruzione else if.

// Esempio #04

int x = 15;
if (x < 10)
 cout << "x is less than 10";
else if (x >= 10 && x <= 20)
 cout << "x is greater than 9 and less than 21";
else 
 cout << "x is greater than 20";

x is greater than 9 and less than 21

Quindi l’else if ci dà ancora più flessibilità per eseguire istruzioni di controllo multiple.

Non sempre abbiamo bisogno delle parentesi graffe {}, tuttavia è sempre meglio usarle per migliorare la lettura del listato.

È anche possibile avere un blocco if all’interno ( annidato ) di un altro blocco if. Proviamo a invocare l’istruzione if interna.

// Esempio #05

int x = 10;
int y = 12;
if(x == 10)
{
 if(y > 10)
  {
   cout << "We're in the nest!";
   cout << endl;
  }
 cout << "We're outside the nest!";
}

We’re in the nest!
We’re outside the nest!

Se inseriamo il primo blocco e la seconda condizione è vera, entrambi i messaggi verranno stampati a video!

Quando abbiamo molte istruzioni if da usare per un determinato progetto, possiamo rendere il codice più chiaro ricorrendo all’istruzione  switch 

// Esempio #06

int num = 3;
switch (num)
{
 case 1:
  cout << "Number 1";
  break;
 case 2:
  cout << "Number 2";
  break;
 case 3:
  cout << "Number 3";
  break;
 default: 
  cout << "Invalid input";
  break;
}

Number 3

L’istruzione switch valuta l’espressione tra parentesi tonde data come argomento; in questo caso l’esperessione è num e di conseguenza esegue il codice in corrispondenza del case 3. La keyword case rappresenta un’etichetta che identifica una particolare caso con una o più istruzioni da eseguire.

Quindi, l’espressione case viene confrontata con l’espressione switch. Se il confronto risulta vero, viene eseguito il codice nel case corrispondente.

break Viene usato per far terminare il programma una volta eseguito il case corrispondente; senza break verrebbero eseguite le istruzioni successive, fino al termine del listato.

default Quando diamo all’istruzione switch un valore non incluso in alcun case, allora viene eseguito il codice di default.

Esercizio “Mister Code” si prenderà una vacanza dai suoi sforzi di programmazione, ma non sa quanti bagagli può portare con sè. Inizializza una variabile limit con valore 45 e una variabile baggage con valore qualsiasi. Utilizza le istruzioni condizionali per visualizzare messaggi di avviso, a seconda che il bagaglio sia inferiore o superiore al limite massimo.

Ritorna alla precedente <– []–> Vai alla successiva

Trackback dal tuo sito.

Lascia un commento

Devi essere loggato per postare un commento.

Per Richieste, Avvisi e Lasciti Ereditari

Disclaimer

I contenuti di questo Blog (testi, immagini, foto, etc.) sono di mia creazione, tranne nei casi dove espressamente indicato.