Pagina Iniziale | Preferiti Comunity: Login | Registrati | Newsletter | Forum | Concorsi Newsgroup
Canali: Hardware | Software | Files | Webmaster | Cellulari | Shop     
Nel sito: News | Articoli | Files | Manuali | Consigli PC | Schede cellulari | Programmaz. | Hosting | Motori Ricerca | Glossario | Link
Servizi: Shopping | Forum | Crea un BLOG | Cartucce Compatibili | Hosting Aruba | Tool News |   Sponsor: Automazione Industriale
  Articoli

Recensioni
Consigli per PC


  News e files

Software
Telefonia
Internet
Tecnologia
Files e Download


  Manualistica

Guide HW/SW
Scripts ASP
Scripts HTML
Scripts Java
Scripts Delphi
Glossario


  Shopping

Hardware
Software e Giochi
Elettronica
Cinema e Film
Console e Accessori
Prodotti Ufficio
Formazione e Corsi

Tieniti aggiornato sul mondo della tecnologia con la nostra newsletter!
La tecnologia sulla tua
casella e-mail

[Info Newsletter]


Concessionaria Pubblicitaria


<< News Precedente [Fine Pagina] News Successiva >>
Il linguaggio Java: lez.5

Un articolo di: Fonte Esterna del 18/12/2002      Letture: 10928
Vai alla pagina:
 4 - Unità didattica 4.4)

45,00 Euro
Il linguaggio java - manuale ufficiale da HOEPLI.it



  Buono sconto 4% su Toner e Cartucce agli utenti AZpoint. SU Iomiricarico.it!!

- Costrutti di programmazione avanzati: for, do e switch

- Il costrutto for

Completiamo il discorso dei cicli presentando for e do. Essi sono due cicli, equivalenti al while, con delle caratteristiche particolari. Ecco la sintassi per il for, nel caso d’utilizzo di una o più istruzioni da iterare:

    for (inizializzazione; espr. booleana; aggiornamento)

istruzione;

    for (inizializzazione; espr. booleana; aggiornamento)

    {

        istruzione1;

        ...........;

        istruzionen;

    }

Presentiamo un esempio che stampa i primi 10 numeri partendo da 10 e terminando ad 1:

class ForDemo

{

    public static void main(String args[])

    {

        for (int n=10; n>0; n--)

                   {

            System.out.println(n);

                   }

    }

}

N.B.: in questo caso notiamo che la sintassi è più compatta rispetto a quella relativa al while. Tra le parentesi tonde relative ad un ciclo for, addirittura dichiariamo una variabile locale n (che smetterà di esistere al termine del ciclo). Potevamo comunque anche dichiararla prima del ciclo, nel caso fosse stata nostra intenzione utilizzarla anche al di fuori di esso. In pratica, se nel while utilizzavamo le parentesi tonde solo per l’espressione booleana, nel for le utilizziamo per inserirci rispettivamente, prima l’inizializzazione di una variabile, poi l’espressione booleana, ed infine l’aggiornamento che sarà eseguito ad ogni iterazione. Da notare che questi tre istruzioni possono anche essere completamente indipendenti tra loro.

Questo è il ciclo più utilizzato, vista la sua grande semplicità d’utilizzo. Il ciclo while, è molto utilizzato quando non si conosce il numero delle volte che le istruzioni devono essere eseguite, e soprattutto nei cicli infiniti, dove la sintassi è banale:

    while (true)

         {

        . . .

        . . .

         }

- Il costrutto do

Nel caso in cui si desideri la garanzia, che le istruzioni da iterare siano eseguite almeno una volta, dobbiamo utilizzare il ciclo do, eccone la sintassi:

    [inizializzazione;]

    do {

        corpo;

        [iterazione;]

    } while (terminazione);

in questo caso viene eseguito prima il blocco di codice, e poi, viene valutata l’espressione booleana che si trova a destra della parola chiave while. Ovviamente se l’espressione booleana è verificata, viene rieseguito il blocco di codice, altrimenti termina. Notare il punto e virgola situato alla fine del costrutto.

- Il costrutto switch

Il costrutto switch, si presenta come alternativa al costrutto if. A differenza di if, non è possibile utilizzarlo in ogni situazione in cui c’è bisogno di scegliere tra l’esecuzione di parti di codice diverse. Di seguito vi presentiamo la sintassi:

    switch (variabile di test) {

        case valore1:

            istruzione1;

        break;

        case valore2: {

            istruzione2;

            ...........;

            istruzionek;

        }

        break;

        case valore3:

        case valore4: //blocchi di codice opzionale

            istruzionek+1;

            ...........;

            istruzionej;

        }

        break;

        [default: {    //clausola default opzionale

            istruzionej+1;

            ...........;

            istruzionen;    

        }]

    }

In pratica, a seconda del valore intero che assume la variabile di test, vengono eseguite determinate espressioni. La variabile di test, deve essere di un tipo di dato compatibile con un intero, ovvero un byte, uno short, un char, oppure, ovviamente un int. Inoltre valore1...valoren devono essere espressioni costanti e diverse tra loro. Notare che la parola chiave break, provoca l’immediata uscita dal costrutto. Se infatti, dopo aver eseguito tutte le istruzioni che seguono un’istruzione di tipo case, non è presente un’istruzione break, verranno eseguite tutti gli statement che seguono gli altri case, sino a quando non si arriverà ad un break. Di seguito viene presentato un esempio:

 

class SwitchStagione {

    public static void main(String args[]) {

    int mese=4;

    String stagione;

    switch (mese) {

        case 12:

        case 1:

        case 2:

            stagione="inverno";

        break;

        case 3:

        case 4:

        case 5:

            stagione="primavera";

        break; //senza questo break si ha estate

        case 6:

        case 7:

        case 8:

            stagione="estate";

        break;

        case 9:

        case 10:

        case 11:

        stagione="autunno";

        break;

        default: //la clausola default è opzionale

            stagione="non identificabile";

        }    

        System.out.println("La stagione e’ "+stagione+".");

    }

}

- Due importanti parole chiave: break e continue

La parola chiave break, è stata appena presentata come comando capace di fare terminare il costrutto switch. Ma break, è utilizzabile anche per far terminare un qualsiasi ciclo. Il seguente frammento di codice, provoca la stampa dei primi dieci numeri interi:

    int i=0;

    while (true) //ciclo infinito

        {

        if (i>10)

        break;

        System.out.println(i);

        i++;

         }

Oltre al break, esiste la parola chiave continue, che fa terminare non l’intero ciclo, ma solo l’iterazione corrente. Il seguente frammento di codice provoca la stampa dei primi dieci numeri, escluso il cinque:

    int i=0;

    do

        {

        i++;    

        if (i==5)

        continue;

        System.out.println(i);

         }

    while(i<=10);

Sia break sia continue, possono utilizzare etichette (label) per specificare, solo nel caso di cicli annidati, su quale ciclo devono essere applicati. Il seguente frammento di codice stampa una sola volta, i soliti primi dieci numeri interi:

    int j=0;

    pippo: //possiamo dare un qualsiasi nome ad una //label

    while (true)

         {

        while (true)

                  {

            if (j>10)

            break pippo;

            System.out.println(j);

            j++;

                 }

         }

 

Esercizio 4.a)

Scrivere un semplice programma, costituito da un’unica classe, che sfruttando esclusivamente un ciclo infinito, l’operatore modulo, un paio di costrutti if, un break ed un continue, stampi solo i primi 10 numeri pari.

Esercizio 4.b)

 

Scrivere un programma che

Utilizza una classe Persona che dichiara le variabili nome, cognome, età, codice fiscale, indirizzo (scegliere i tipi di dati più appropriati). Ricordarsi di utilizzare le convenzioni e le regole descritte in questo modulo.

Utilizza una classe Principale che nel metodo main, istanzia due oggetti chiamati persona1 e persona2 della classe Persona, inizializzando per ognuno di essi i relativi campi sfruttando l’operatore dot.

Dichiarare un terzo reference (persona3) che punti ad uno degli oggetti già istanziati. Controllare che effettivamente persona3 punti allo oggetto voluto, stampando i campi di persona3 sempre mediante l’operatore dot.

Commentare adeguatamente le classi realizzate e sfruttare lo strumento javadoc per produrre la relativa documentazione.

 

Esercizio 4.c)

 Scrivere un'applicazione che stampi i 256 caratteri del codice ASCII con un ciclo (suggerimento: riguardare il capitolo precedente).


Claudio De Sio Cesari --- il linguaggio Object Oriented Java --- http://www.claudiodesio.com

Vai alla pagina:

Elenco delle pagine di "Il linguaggio Java: lez.5"

Obbiettivi e Unità Didattica 4.1) - Pagina 1
Unità didattica 4.2) - Pagina 2
Unità didattica 4.3) - Pagina 3
Unità didattica 4.4) - Pagina 4



[Indietro]    [Su]      [Home]      [Commenti]      [V. Stampabile]

Commenta questa notizia:
Non hai ancora fatto il
Login, puoi inserire commenti solo come anonimo.
ATTENZIONE: il tuo IP verrà memorizzato e mostrato a fianco del commento; con la pressione del tasto invia commento si esprime il consenso alla pubblicazione di tale informazione personale.
A discrezione dello staff, i commenti ritenuti non adatti od offensivi potranno essere rimossi. Nel caso di utilizzo di espressioni volgari od offensive il comportamento verrà segnalato al provider interessato.
Se non ti sei ancora registrato, cosa aspetti? Registrati subito.

Da ora puoi discutere dei problemi informatici anche sul nostro FORUM

Testo del commento:




  News correlate

 Corso Java @ilsoftware.it
 Il linguaggio Java: lez.10/10
 Il linguaggio Java: lez.9
 Il linguaggio Java: lez.8
 Il linguaggio Java: lez.7
 Il linguaggio Java: lez.6
 Il linguaggio Java: lez.5
 Il linguaggio Java: lez.4


Domini Email SpazioWeb
a partire da € 9.99+IVA annui


  Ultime dal Forum

Conoscete metodi di guadagno?
vuoi guadagnare dai 3 ai 100 euro al giorno??
Guadagnare soldi con GDI
consiglio 1000-1100@€
Osservatorio PTC
NOVITA' ASSOLUTA
3° RADUNO ITALIANO PES 2008: ROMA - 25 MAGGIO 2008
DROP SHIP-DROP SHIPPING ITALIA
LA MIGLIORE

Comunicazioni / Note Legali / Staff / Collabora / Pubblicità / Contatti


Copyright ZETA TECH S.r.l. (P.IVA : 02387250307), tutti i diritti riservati Utenti Connessi: 289

Programmi


Pagina creata in 0.11sec. Powered by Zeta Tech S.r.l.

Stats v0.1 (0.000sec.)