Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Comportamento while e for con substring.

    Salve a tutti,
    ho provato a scrivere due metodi diversi per fare la stessa cosa e nonostante teoricamente siano giusti entrambi (o almeno credo) ho osservato che il ciclo di for non funziona mentre il while si, e non riesco a capirne il motivo.
    Vi chiedo aiuto proprio per questo.

    Qua le righe del programma.
    Grazie in anticipo e buone feste!

    codice:
    public class prova
    { public static void main(String[] args)
        { 
         String s1 = "pluto"; 
         int lungh = s1.length(); // è 5
         
         System.out.println("inizio for");
         String sub = "";
         for(int i=lungh; i>0 && i<2; --i)
            {
             sub = s1.substring(0,i);
             System.out.println(sub);
            }
         System.out.println("fine for");
         System.out.println("inizio while");
         
         int k=lungh; 
         while(k>0)
            {
             System.out.println(s1.substring(0,k));
             k--;
            }         
         
         System.out.println("fine while");
        
        }
    }
    Ultima modifica di LeleFT; 28-12-2015 a 16:29 Motivo: Aggiunti i tag CODE

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Java != JavaScritp

    Ti sposto
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    lung vale 5.
    for(int i=lungh; i>0 && i<2; --i) non entra nemmeno nel corpo del ciclo for poichè la condizione (i >0 && i < 2) è già falsa in partenza.
    i vale 5 che è maggiore 0, ma maggiore anche di 2 (in concreto, si entrerebbe nel corpo del for solo se i valesse 1)

    Il while ha una condizione diversa: si limita a ciclare finchè k è maggiore di 0.


    Sia il for che il while continuano a ciclare fin tanto che la loro guardia (la condizione) rimane vera e terminano appena diventa falsa.


    Ciao.
    Ultima modifica di LeleFT; 28-12-2015 a 16:33
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Tag per questa discussione

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.