/* *************************************************************************
* Ora analizzeremo il costrutto switch, che permette di fare facilmente
* test multipli ad una variabile. Abbiamo visto come fare dei test
* multipli tramite molti if annidati, ma quando i test sono molti, ossia
* sono molti i "casi" in cui agiamo diversamente, e' meglio usare switch.
* Ecco la sua forma:
*
* switch(variabile)
* {
* case costante1:
* istruzione1;
* break;
* case costante2:
* istruzione2;
* break;
* case costante3:
* istruzione3;
* break;
* default:
* istruzione4;
* }
*
* In questo caso faremmo 3 confronti. Se la variabile non soddisfa nessuno
* dei 3 confronti viene eseguita l'istruzione sotto "default".
* I break servono per fermare il confronto qualora uno dei casi fosse
* risultato vero. Se non si mettono i break i confronti continuano al case
* successivo. Se non si mette la parte default, nel caso in cui nessun
* confronto sia vero, non viene fatto niente.
* Da notare che lo switch puo' verificare solo l'uguaglianza, a differenza
* degli if che possono verificare condizioni qualsiasi.
* Potremmo usare lo switch per fare una specie di menu' di selezione,
* in cui controlliamo quale voce di menu' (corrispondente ad un numero),
* e' stata selezionata.
************************************************************************* */
import java.io.*; // Include le funzioni I/O standard di base.
class Jlez1i1 { // Da qua inizia la classe Jlez1i1
public static void main(String args[]) // Definiamo il metodo Main.
{ // Inizio del main()
int pippo=0; // Definiamo una variabile intera pippo.
System.out.println("\n Scegli il canto dell'inferno che ti interessa:\n");
System.out.println(" 1) Canto primo.");
System.out.println(" 2) Canto secondo.");
System.out.println(" 3) Canto terzo.");
System.out.println(" 4) Canto quarto.");
System.out.println(" 5) Canto quinto.");
System.out.println(" 6) Canto sesto.");
System.out.println(" 7) Canto settimo.");
System.out.println(" 8) Canto ottavo.");
System.out.println(" 9) Canto nono.");
System.out.println(" 10) Canto decimo.");
try {
DataInputStream leggilo = new DataInputStream(System.in);
String stringa = leggilo.readLine(); // dichiaro e leggo stringa.
pippo = Integer.valueOf(stringa).intValue(); // e la converto in int.
}
catch (Exception e) {
System.out.println("Errore: " + e + " nella lettura da tastiera");
System.exit(0);
}
switch(pippo) // pippo usato per il confronto
{
case 1:
System.out.println("Nel mezzo del cammin di nostra vita");
System.out.println("Mi ritrovai per una selva oscura,");
System.out.println("Che la diritta via era smarrita.");
break;
case 2:
System.out.println("Lo giorno se n'andava, e l'aer bruno");
System.out.println("Toglieva gli animai, che sono in terra.");
break;
case 3:
System.out.println("Per me si va nella citta' dolente,");
System.out.println("Per me si va nell'eterno dolore,");
System.out.println("Per me si va tra la perduta gente.");
break;
case 4:
System.out.println("Ruppemi l'alto sonno nella testa");
System.out.println("Un greve tuono, si ch'io mi riscossi,");
System.out.println("Come persona che per forza e' desta");
break;
case 5:
System.out.println("Cosi' discesi del cerchio primaio");
System.out.println("Giu' nel secondo, che men loco cinghia,");
System.out.println("E tanto piu' dolor, che pugne a guaio.");
break;
case 6:
System.out.println("Al tornar della mente, che si chiuse");
System.out.println("Dinnanzi alla pieta' de' due cognati");
System.out.println("Che di tristizia tutto mi confuse,");
System.out.println("Nuovi tormenti e nuovi tormentati");
System.out.println("Mi veggo intorno, come c'io mi muova\n");
break;
case 7:
System.out.println("Pape Satan, pape Satan aleppe,");
System.out.println("Comincio' Pluto colla voce chioccia");
System.out.println("E quel Savio gentil, che tutto seppe");
System.out.println("Disse per confortarmi: Non ti noccia");
System.out.println("La tua paura, che', poter ch'egli abbia,");
System.out.println("Non ti torra' lo scender questa roccia.");
break;
case 8:
System.out.println("Io dico seguitando, ch'assai prima");
System.out.println("Che noi fossimo al pie' dell'alta torre,");
System.out.println("Gli occhi nostri n'andar suso alla cima");
break;
case 9:
System.out.println("Quel color che vilta' di fuor mi pinse");
System.out.println("Veggendo il Duca mio tornare in volta");
System.out.println("Piu' tosto dentro il suo nuovo ristrinse");
break;
case 10:
System.out.println("Ora sen va per uno stretto calle");
System.out.println("Tra il muro della terra e li martiri");
System.out.println("Lo mio Maestro, ed io dopo le spalle.");
break;
default:
System.out.println("Selezione sbagliata!");
} // Fine del costrutto switch
} // Fine del metodo principale Main()
} // Fine della classe Jlez1i1
/* *************************************************************************
* L'unico "difetto" che ha questo programma e' che se si volessero vedere
* tutti e 10 gli inizi di canto si dovrebbe eseguire 10 volte.
* In pratica, bisognerebbe fare in modo che si ritorni al menu' di
* selezione ogni volta fino a che non si voglia uscire dal programma,
* magari inserendo 0. Vedremo dei sistemi per fare cio'.
************************************************************************* */
