Switch e While in Java

In questa lezione del corso su Java vedremo alcune strutture di controllo e cicli. Tutti i linguaggi di programmazione possiedono strutture per controllare il flusso del programma, la più semplice e conosciuta è “if“, che significa proprio “se” e serve per verificare una condizione o più, unite dagli operatori logici.
Prendiamo questo esempio di codice:

package corso;
public class Main
{
   public static void main(String[] args)
   {
         char cTest = 'L';
         String strTest;

         if (cTest == 'S')
             strTest = "Non mi piace la scimmia!";
        else if (cTest == 'C')
             strTest = "Bello il cavallo che salta!";
        else if (cTest == 'L')
             strTest = "Che bocca grande ha il leone!";
        else if (cTest == 'K')
             strTest = "Ma quanto beve questo cammello?";
        else
             strTest = "Se non conosco l'animale lo evito!";

        System.out.println(strTest);
   }
}

possiamo notare l’uso delle condizioni per rappresentare un elenco, in questi casi è preferibile, perché più performante, utilizzare l’istruzione switch, vediamo lo stesso esempio modificato per l’uso con switch:

package corso;
public class Main
{
   public static void main(String[] args)
   {
         char cTest = 'L';
         String strTest;

         switch(cTest)
         {
         case 'S':
         	strTest = "Non mi piace la scimmia!";
            break;
         case 'C':
            strTest = "Bello il cavallo che salta!";
            break;
         case 'L':
            strTest = "Che bocca grande ha il leone!";
            break;
         case 'K':
            strTest = "Ma quanto beve questo cammello?";
            break;
         default:
            strTest = "Se non conosco l'animale lo evito!";
         }

         System.out.println(strTest);
    }
}

Come potete vedere la variabile da testare è di tipo carattere, ma può essere anche di tipo numerico. La differenza di prestazioni è dovuta al fatto che, mentre nel primo esempio ogni condizione va verificata, nel secondo il programma va immediatamente nel valore giusto e questo lo potete vedere facilmente utilizzando il debugger. Il break consente di far saltare il flusso del codice alla fine dello switch, se provate a toglierli, vedrete che il programma continuerà al prossimo case.
Vediamo ora il ciclo while che serve per compiere una determinata azione numerose volte, il suo uso ed utilizzo attraverso questo esempio:

package corso;
public class Main
{
   public static void main(String[] args)
   {
      String strTest = "Giampaolo Rossi";

      int k = 0;
      int qt = 0;

      while (k < strTest.length())
      {
          if (strTest.charAt(k) == 'o')
               qt++;
          k++;
      }

      System.out.println("In " + strTest + " ci sono " +
        qt + " lettere o");
   }
}

Oltre al ciclo while, abbiamo anche do-while, l’unica differenza è che con questa seconda struttura il corpo viene eseguito sicuramente almeno una volta. Un’altra struttura per creare dei cicli è il for, vediamo come utilizzarlo al posto del while.

package corso;
public class Main
{
   public static void main(String[] args)
   {
      String strTest = "Giampaolo Rossi";

      int k;
      int qt = 0;

      for (k = 0; k < strTest.length(); k++)
      {
          if (strTest.charAt(k) == 'o')
            qt++;
      }

      System.out.println("In " + strTest + " ci sono " +
         qt + " lettere o");
   }
}

Come avete potuto vedere da questa lezione, il corso che voglio creare è soprattutto dedicato alla pratica, di corsi Java dediti alla teoria ce ne sono moltissimi nella rete, non avete che l’imbarazzo della scelta. Quello che voglio da voi però è di non barare, non copiate ed incollate il codice che vi proporrò di volta in volta, ma cercate di capirlo e soprattutto create vostri esempi. Ovviamente potete fare come volete, non ho controllo su di voi, ma se volete diventare dei veri programmatori Java occorre che studiate la teoria o qui o in altri corsi e poi fare pratica, tanta pratica e fatica. In questo corso, ripeto, vedrete moltissimo codice sorgente e se aveste dei problemi potete colloquiare con me tramite il nostro forum, questo forse, se ben sfruttato, è un mezzo molto importante per capire la programmazione Java.

<< Lezione Precedente – Inizio CorsoLezione Successiva >>

Pubblicato
Categorie: Java

Di Giampaolo Rossi

Sviluppatore software da oltre 16 anni.