a cura di Dario Dariol
 
     

    Esercizio 009 - Goto

     
    Java (a differenza di C e C++) non ha il goto (anche se goto è una parola riservata del linguaggio) e quindi non è possibile saltare indiscriminatamente qua e là nel codice. Nonostante ciò qualche salto strutturato è ancora possibile farlo attraverso le istruzioni break e continue.
    Consideriamo quindi il seguente esempio:
    class Quiz9{
      public static void main(String [] args){
        int i = 1;
        Wow:
          System.out.println("A i="+i);
        Wow:
          try {
            Here:
              i++;
              System.out.println("B i="+i);
            Here:
              for(i=3; i<10; i++) {
                if (i%2 == 0)
                  continue Here;
                if (i == 7)
                  break Wow;
                if (i > 7)
                  break Here;
                System.out.println("C i="+i);
              }
            Here:
              System.out.println("D i="+i);
              break Wow;
          } finally {
            Here:
              System.out.println("E i="+i);
              return;
          }
        Wow:
          System.out.println("F i="+i);
      }
    }
  • Il (vostro) compilatore Java compila questo programma senza errori e/o warning?
  • Nel caso ci siano degli errori di compilazione quali righe del programma vanno modificate o cancellate?
  • Quando si esegue il programma: cosa stampa?
  • Alla luce di quanto stampato dal programma: cosa pensate del sistema di diagnostica del (vostro) compilatore Java?
Come al solito non occorre compilare ed eseguire il pezzo di codice sopra illustrato. Bisogna invece ragionare su di esso e riuscire a rispondere ai quattro problemi posti usando solo la specifica del linguaggio. Quando si è ragionevolmente sicuri delle risposte allora (e solo allora!) è possibile verificarle tramite un run di prova e/o leggere il mio commento su queste colonne tra due mesi.




MokaByte®  è un marchio registrato da MokaByte s.r.l.

Java® è un marchio registrato da Sun Microsystems; tutti i diritti riservati

E' vietata la riproduzione anche parziale
Per comunicazioni inviare una mail a
mokainfo@mokabyte.it