Galera to com dúvida no For encadeado pra construir a tabela abaixo:
Imprima a seguinte tabela usando for encadeados:
1
2 4
3 6 9
4 8 12 16
n n2 n3 … n*n
Econtrei aqui no forum o cod abaixo:
public static void main(String[] args) {
02.
03. int n = 4; // número de linhas que queremos imprimir
04.
05. for (int i = 1; i <= n; i++){
06. for (int j = 1; j <= i; j++){
07. System.out.print((i*j) + " ");
08. }
09.
10. System.out.println("");
11. }
12. }
Pessoal creio q nao peguei legal a mecânica do for, então pergunto:
Na primeira execução do for na linha 5 o “i” vale 1
Entra na linha 6 e o “for” sera executado apenas 1 vez pq ‘j’ = ‘i’ imprimindo 1 e muda de linha.
ok até ai certo no meu teste de mesa.
Mas dai volta pro for externo linha 5 onde o ‘i’ passa a valer 2
Entra no ‘for’ interno, ‘j’ é incrementado pra 2 e vai executar 1 vez apenas de novo pois ‘j’ = ‘i’ de novo, imprimindo apenas o numero 4
Aqui no meu teste o for interno da linha 6 vai imprimir apenas 1 numero em cada uma das 4 linhas.
Porque ‘i’ e ‘j’ sempre tem o mesmo valor sendo essa a condição pra uma única execução do ‘for’ interno da linha 6
Mas quando rodo o programa forma a tabela direitinho
Olá Rafael.
Seguinte, primeiro tente entender o que o programa faz, reparou que ele imprime os mútiplos de cada linha até chegar no valor determinado de ‘n’.
Depois de entendido o problema fica fácil responder sua pergunta.
O primeiro for representa a quantidade de “linhas”, o segundo for representa a quantidade de “colunas”.
O for de dentro que representa as “colunas”, executa mais que 1 vez por conta da validação “j <= i”, lembre-se que quando sair do for das “colunas” e entrar novamente o J assume o valor 1, ou seja ele é reinicializado, enquanto o i do for externo está sendo iterado, então ele sempre vai executar mais um vez…
Espero ter ajudado.
"lembre-se que quando sair do for das “colunas” e entrar novamente o J assume o valor 1, ou seja ele é reinicializado, enquanto o i do for externo está sendo iterado, então ele sempre vai executar mais um vez…
"
putz cara muito obrigado
era essa minha duvida !!! tinha visto outros post e explicações mas a sua eu entendi !!! really thank’s
Como mencionaram: "lembre-se que quando sair do for das “colunas” e entrar novamente o J assume o valor 1, ou seja ele é reinicializado, enquanto o i do for externo está sendo iterado, então ele sempre vai executar mais um vez… "
Uma outra maneira pra entender também é olhar como funciona o código.
lembrando que o n=4; // numero de linhas para imprimir
for(int i=1; i<= n; i++){
for(int j=1; j<= i; j++){
System.out.print( ( i * j )+ “”);
}
}
Como o i é inicializado com 1, o for entra em 1
i=1 j=1
Na segunda rodada o i vai valer 2 e o j é inicializado com 1 novamente. E assim sucessivamente.
i=2 j=1
i=2 j=2
i=3 j=1
i=3 j=2
i=3 j=3
i=4 j=1
i=4 j=2
i=4 j=3
i=4 j=4
Obs: fazendo a multiplicação no System, os resultados bate.
Entendi deste modo também! Espero que esteja ok o/
1 curtida