HACKING 120% {Hacking, programmazione, computer & molto altro}

[Supporto] For annidati

« Older   Newer »
  Share  
Nessuno
view post Posted on 5/3/2014, 17:30     +1   -1




Ciao a tutti,
vorrei chiedervi spiegazioni su un programma presente nel libro:

int i, j;

for (i=0; i<10; i++) {
for (j=i; j<10; j++)
System.out.print(".");
System.out.println();
}
l'output che genera è:

. . . . . . . . . .
. . . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . .
. . . . .
. . . .
. . .
. .
.

il problema è che non riesco a capire come quei for creino l'output generato :crying: da quel che ho capito io "i" indica quanti punti dovranno essere verticalmente e "j" orizzontalmente(o sto sbagliando?) però non riesco a capire come mai i punti vengono elaborati in ordine decrescente :(

Grazie in anticipo
 
Top
Sl0w_Rain
view post Posted on 5/3/2014, 17:46     +1   +1   -1




i sta per le righe e j per i puntini, vengono elaborati in ordine decrescente perché l'associazione parte da destra.
 
Top
Nessuno
view post Posted on 5/3/2014, 18:00     +1   -1




CITAZIONE (Sl0w_Rain @ 5/3/2014, 17:46) 
i sta per le righe e j per i puntini, vengono elaborati in ordine decrescente perché l'associazione parte da destra.

Grazie, credo di aver capito :)
 
Top
Sl0w_Rain
view post Posted on 5/3/2014, 21:30     +1   -1




CITAZIONE (Nessuno @ 5/3/2014, 18:00) 
CITAZIONE (Sl0w_Rain @ 5/3/2014, 17:46) 
i sta per le righe e j per i puntini, vengono elaborati in ordine decrescente perché l'associazione parte da destra.

Grazie, credo di aver capito :)

Non sono molto pratico come root nel spiegare i concetti lol
 
Top
Nessuno
view post Posted on 5/3/2014, 21:33     +1   +1   -1




CITAZIONE (Sl0w_Rain @ 5/3/2014, 21:30) 
CITAZIONE (Nessuno @ 5/3/2014, 18:00) 
Grazie, credo di aver capito :)

Non sono molto pratico come root nel spiegare i concetti lol

:asdf: :asdf: non ti preoccupare! Ho capito lo stesso :D
 
Top
RootkitNeo
view post Posted on 5/3/2014, 23:52     +2   +1   -1




La spiegazione è stata data, ma la offro anche io, visto che mi va anche di scrivere.

Guarda il codice scritto in questo modo:
CODICE
int i, j;

for (i=0; i<10; i++) {
 for (j=i; j<10; j++) {
   System.out.print(".");
 }
 System.out.println();
}

Il ciclo che scorre j inizia dalla posizione i, che è inizialmente 0. Di conseguenza la prima riga scorre da j=i=0 sino a j<10, ovvero stampa 10 punti. Il secondo ciclo trova la i incrementata di 1, che quindi vale 1, di conseguenza j=i=1 e quindi verranno stampati 9 puntini, dall'1 al 9. E la cosa si ripete sino a che i non risulta uguale a 10.
 
Top
Nessuno
view post Posted on 5/3/2014, 23:59     +1   -1




CITAZIONE (RootkitNeo @ 5/3/2014, 23:52) 
La spiegazione è stata data, ma la offro anche io, visto che mi va anche di scrivere.

Guarda il codice scritto in questo modo:
CODICE
int i, j;

for (i=0; i<10; i++) {
 for (j=i; j<10; j++) {
   System.out.print(".");
 }
 System.out.println();
}

Il ciclo che scorre j inizia dalla posizione i, che è inizialmente 0. Di conseguenza la prima riga scorre da j=i=0 sino a j<10, ovvero stampa 10 punti. Il secondo ciclo trova la i incrementata di 1, che quindi vale 1, di conseguenza j=i=1 e quindi verranno stampati 9 puntini, dall'1 al 9. E la cosa si ripete sino a che i non risulta uguale a 10.

Grazie Root :) ottime spiegazioni come sempre :D
 
Top
RootkitNeo
view post Posted on 6/3/2014, 00:02     +1   -1




Di nulla. ;)
 
Top
Sl0w_Rain
view post Posted on 6/3/2014, 02:57     +1   -1




Merda, era il ciclo for, sono ubriaco (serio) recupero lol.
 
Top
Nessuno
view post Posted on 6/3/2014, 13:14     +1   -1




CITAZIONE (Sl0w_Rain @ 6/3/2014, 02:57) 
Merda, era il ciclo for, sono ubriaco (serio) recupero lol.

Ahahahahhahah non bisogna mai alzare troppo il gomito :asdf:
 
Top
9 replies since 5/3/2014, 17:30   96 views
  Share