- Programmare in C++ (4 lezione) - |
|||
COSA SERVE PER QUESTO TUTORIAL | |||
Download | Chiedi sul FORUM | Glossario | Qualche conoscenza nell'ambito della programmazione semplice - conoscenze matematiche di base - un compilatore (Borland o Microsoft) - il codice sorgente della lezione. | ||
Istruzioni del C++ per verificare determinate condizioni e agire di conseguenza | |||
LE ISTRUZIONI CONDIZIONALI Una breve introduzione alle possibili forme di condizioni del C++ In programmazione per "condizione" si intende solitamente quel processo che vede l'esecuzione di una verifica di una determinata espressione (es. "la casa è bianca?") e, in base alla sua veridicità/falsità, si portano avanti azioni diverse. Vediamo subito un esempio puramente teorico: //ESEMPIO TEORICO DI CONDIZIONE //Stabiliamo subito (arbitrariamente) che //la casa A è bianca ----------------------------> IMPOSTIAMO LA VARIABILE CHE ENTRERA' IN GIOCO //Ecco quindi la nostra condizione: //SE la casa è bianca allora --------------------> CONDIZIONE 1 DA VERIFICARE //dipingila di rosso. ---------------------------> AZIONE DA ESEGUIRE SE LA CONDIZIONE E' VERIFICATA //SE INVECE la casa è gialla allora -------------> CONDIZIONE 2 VERIFICABILE SOLO SE LA CONDIZIONE 1 E' FALSA //dipingila di blu. -----------------------------> AZIONE DA ESEGUIRE SE LA CONDIZIONE 2 E' VERIFICATA //SE invece è di un QUALSIASI ALTRO colore ------> CONDIZIONE ALTERNATIVA //dipingila di verde. ---------------------------> AZIONE DA ESEGUIRE SE LE CONDIZIONI 1 E 2 SONO FALSE Come si può facilmente notare non c'è nulla di difficile in questo esempio, passiamo quindi ad una rappresentazione più rigorosa. LE ISTRUZIONI IF, ELSE E IF ELSE int casa = 1; if (casa == 1) { casa = 2; } else if (casa == 3) { casa = 4; } else { casa = 5; } Per prima cosa possiamo dire che "if" (la nostra prima istruzione condizionale) corrisponde alla dicitura italiana "se" (es. "se la casa è bianca..."), "else if" alla dizione "invece se" e "else" potrebbe corrispondere alla dizione "in tutti gli altri casi" ma per essere più chiari applichiamo il caso teorico al caso pratico: //la casa A è bianca ----------------------------> IMPOSTIAMO LA VARIABILE CHE ENTRERA' IN GIOCO int casa = 1; //Ecco quindi la nostra condizione: //SE la casa è bianca allora --------------------> CONDIZIONE 1 DA VERIFICARE if (casa == 1) { //dipingila di rosso. ---------------------------> AZIONE DA ESEGUIRE SE LA CONDIZIONE E' VERIFICATA casa = 2; } //SE INVECE la casa è gialla allora -------------> CONDIZIONE 2 VERIFICABILE SOLO SE LA CONDIZIONE 1 E' FALSA else if (casa == 3) { //dipingila di blu. -----------------------------> AZIONE DA ESEGUIRE SE LA CONDIZIONE 2 E' VERIFICATA casa = 4; } //SE INVECE è di un qualsiasi altro colore ------> CONDIZIONE ALTERNATIVA else { //dipingila di verde. ---------------------------> AZIONE DA ESEGUIRE SE LE CONDIZIONI 1 E 2 SONO FALSE casa = 5; }Eseguendo questo codice si avrà come risultato "casa" uguale a 2 (la casa bianca viene ovvero dipinta di rosso). Visualizziamo ora una serie di importanti notazioni a riguardo di questa istruzione:
L'ISTRUZIONE CONDIZIONALE ? Compreso il funzionamento di "if" sarà adesso davvero intuitiva la comprensione dell'istruzione condizionale ? (di cui avevamo già fatto menzione nella lezione a riguardo degli operatori). Diamo subito una rapida occhiata al seguente esempio: // parteDaVerificare ? azioneSeRisultaVerificata : azioneSeRisultaFalsa; // Proviamo a riportare l'esempio precedente: int casa = 1; (casa==1) ? casa = 2 : casa = 3; L'istruzione condizionale ? (chiamata anche operatore ternario) restituisce "rapidamente" un valore true o false (vero o falso) e in base a quest'ultimo esegue rispettivamente o la prima azione o la seconda. In particolare il listato appena preso in considerazione restituisce "casa" uguale a 2 (la casa bianca viene dipinta di rosso). L'ISTRUZIONE SWITCH // ESEMPIO TEORICO DI SWITCH: //STABILIAMO CHE ABITAZIONE E' UGUALE A 1 // SE L'ABITAZIONE E' // UGUALE A 1 ALLORA //DIPINGILA DI ROSSO //ED ESCI DALL'ISTRUZIONE // UGUALE A 2 ALLORA //DIPINGILA DI MARRONE //ED ESCI DALL'ISTRUZIONE // UGUALE A 3 ALLORA //DIPINGILA DI FUCSIA //ED ESCI DALL'ISTRUZIONE // IN TUTTI GLI ALTRI CASI //DIPINGILA DI NERO Gli "switch" sono dei validi sostituti di sequenze di "if" o di "if" con troppi "else if". gli "switch" funzionano difatti in maniera piuttosto simile ai loro "compagni" ma permettono, di fronte ad esempio ad una lunga lista di possibili valori che può assumere la condizione da verificare, un codice meno macchinoso e più efficace. L'unica vera differenza sta nel fatto che per uscire dall'istruzione e far si che non vengano più eseguiti i successivi casi è necessario interrompere l'esecuzione dello "switch" (con il comando "break"). Ma vediamone una sintassi rigorosa commentata: // DICHIARIAMO LA NOSTRA VARIABILE int abitazione = 1; // SE L'ABITAZIONE E' switch (abitazione) { // UGUALE A 1 ALLORA case(1): //DIPINGILA DI ROSSO abitazione = 2; break; // UGUALE A 2 ALLORA case(2): //DIPINGILA DI MARRONE abitazione = 7; break; // UGUALE A 3 ALLORA case(3): //DIPINGILA DI FUCSIA abitazione = 8; break; // IN TUTTI GLI ALTRI CASI default: //DIPINGILA DI NERO abitazione = 9; } Scendiamo più nel dettaglio nelle varie parti:
Ancora una serie di notazioni generali a riguardo di "switch":
RIASSUNTO DELLA LEZIONE, ESEMPI E CHIARIMENTI Ciascuna delle strutture trattate in questa lezione può essere usata liberamente per fare svariate operazioni anche se talvolta una di esse può risultare più efficace di un'altra. Ecco di seguito le istruzione che abbiamo imparato affiancate da una breve descrizione sul "quando usarle" (non si tratta di regole fisse):
Concludiamo la lezione con un esempio chiarificatore delle istruzioni appena apprese:
int casa = 3; //Usiamo IF if (casa > 1 || casa == 0) { casa = 2; } //Usiamo ?: (casa > 1) ? casa = 12 : casa = 0; //Usiamo SWITCH switch (casa) { case(1): casa = 2; break; case(3): casa = 7; break; case(6): casa = 8; break; default: casa = 100; }Il risultato di questo codice sarà "casa" uguale a 100. |
|||
<< INDIETRO | by aFiGoZ |