Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Ciclo for o While

  1. #1

    Ciclo for o While

    Da poco mi sono addentrato nel mondo di Java, uscendo da una buona base di Python seguendo i corsi all'università. Ma entrambi i cicli si equivalgono? E' possibile iterare con entrambi allo stesso modo?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    442
    Sì, si equivalgono. Il while è preferibile usarlo quando la condizione di terminazione del ciclo non è conosciuta a priori.

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da paolovox Visualizza il messaggio
    E' possibile iterare con entrambi allo stesso modo?
    codice:
    for (int i = 0; i < 10; i++) {
        System.out.println("hello");
    }
    e
    codice:
    int i = 0;
    while (i < 10) {
        System.out.println("hello");
        i++;
    }
    sono equivalenti come risultato finale.

    E anzi, dirò di più, il bytecode generato è perfettamente uguale.
    Ultima modifica di andbin; 22-03-2014 a 18:06
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Vi ringrazio. Quindi la scelta tra i due dipende dalla preferenza del programmatore.

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Quote Originariamente inviata da paolovox Visualizza il messaggio
    Vi ringrazio. Quindi la scelta tra i due dipende dalla preferenza del programmatore.
    Non proprio. In java (e altri linguaggi) un for può sempre diventare un while (e viceversa) ma i due costrutti avrebbero alcune differenze concettuali.

    Il ciclo for va usato quando il numero di iterazioni è noto. Ad esempio, in

    for (int i = 0; i < array.length; i++) { CODICE }

    Il programmatore sa che CODICE verrà eseguito un numero ben preciso di volte, array.length.

    Mentre in

    codice:
    String line = null;
    while ((line = bufferedReader.readLine()) != null) { CODICE }
    non c'è più questa certezza... Potresti iterare una volta, 100 volte o anche nessuna... Lo scopri a runtime
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.