Come ti ho cercato di farti capire, al secondo ciclo del while (quindi una volta eseguito il for o il break oppure quando i = 6) il flusso del programma ritorna diciamo in mano al while quindi esegue le ultime 2 estruzioni
System.out.println( " |" );
System.out.print( "\n" );
ritorna a testare la condizione del while ( che è sempre vera)
esegue System.out.print( "| " );
e arriva di nuovo al for.
Il for è un istruzione che a sua volta può essere composta da tre diciamo sotto istruzioni : dichiarazione; codizione; incremento.
Quindi il programma appena incontra il for (cioè la ogni qualvolta trova la parolina for) effettua la dichiarazione (i = 1) e poi valuta la codizione se questa è vera incomincia a ciclare finché essa rimane vera.
Quindi anche se nell'iterazione precedente la tua variabile i era arrivata a valere 6 la seconda volta che esegue il for rientra tranquillamente perché hai imposto come dichiarazione del for i=1.
Quindi per farla spicciola quel for verrà eseguito ad ogni ciclo del while (indipendentemente dal valore assunto da i nelle precedente iterazioni).


Rispondi quotando