Galera humildemente eu gostaria de pedir pra alguma alma caridosa me explicar a lógica desse segundo for. Eu estou tentando de todas as formas aqui e parece que nada que penso faz sentido. Estou louco? Agradeço demais!!!!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Galera humildemente eu gostaria de pedir pra alguma alma caridosa me explicar a lógica desse segundo for. Eu estou tentando de todas as formas aqui e parece que nada que penso faz sentido. Estou louco? Agradeço demais!!!!
public class TesteLaçosAninhados2 {
public static void main(String[] args) {
for(int linha = 0; linha < 10; linha++) {
for(int coluna = 0; coluna <= linha; coluna++) {
System.out.print("*");
}
System.out.println();
}
}
}Você não entendeu pra que serve esse segundo for, é isso?
Isso João. Não estou de forma alguma conseguindo entender a lógica desse segundo for.
/* Tudo bem Gabriel?
Tentarei te explicar de forma mais detalhada. O que estiver com "//"
será minha explicação OK. */
public class TesteLacosAninhados2 {
public static void main(String[] args) {
for(int linha = 0; linha < 10; linha++) {
// Nesse caso linha tem o valor de "0";
for(int coluna = 0; coluna <= linha; coluna++) {
//Quando chega aqui ele verifica o valor de coluna, que é "0",
//e vê se é menor ou igual a linha, que também é "0".
// (coluna = 0) é menor ou igual a (linha = 0)? Sim (true), então
//ele passa para a parte de baixo e imprime um asterisco.
System.out.print("*");
// Aqui ele incrementa coluna com + 1 (incremento do segundo FOR)
//e faz novamente a verificação, só que agora coluna = 1.
// E volta pro segundo FOR pra verficar se: (coluna = 1) é menor ou
//igual a (linha = 0)? Não (false), então sai do segundo FOR e
//continua o programa saindo do loop, porque a a condição
//foi falsa.
}
System.out.println();
// Aqui ele pula uma linha e incrementa a linha com + 1 (incremento
//do primeiro FOR). E volta pra verificação do primeiro FOR.
}
}
}
/*Quando ele faz a verificação novamente, linha agora é 1, pois foi
incrementada.
Aí no segundo FOR está lá novamente (coluna = 0), e é verificado se
coluna é menor ou igual a linha, porém agora linha é igual 1.
Então ele faz: (coluna = 0) é menor ou igual a (linha = 1)?
Sim (true), então ele passa para a parte de baixo e imprime um
asterisco.
Incrementa coluna com + 1 (incremento do segundo FOR) e faz
novamente a verificação, só que agora coluna = 1.
(coluna = 1) é menor ou igual a (linha = 1)? Sim (true), então
ele passa para a parte de baixo e imprime outro asterisco.
Ainda dentro do segundo FOR ele novamente incrementa coluna com + 1,
e agora coluna = 2.
E volta pro segundo FOR pra verficar se: (coluna = 2) é menor ou
igual a (linha = 1)? Não (false), então sai do segundo FOR e
continua o programa saindo do loop, porque a a condição foi falsa.
Novamente ele pula uma linha e incrementa linha com + 1 e linha
passa a ser 2.
Aí vai fazendo as mesmas verificações no segundo FOR começando com
(coluna = 0) e vendo se é menor ou igual ao valor da linha.
Enquanto a coluna for menor que a linha, ele vai imprimindo um
asterisco e incrementando com + 1 a coluna até a condição se tornar
falsa e ele pular mais uma linha e incrementar a variável linha com
+ 1.
O ciclo termina quando o valor de linha for 10.
O programa imprimiu na primeira vez:
*
Na segunda vez:
**
E depois dos outros loops ficará:
*
**
***
****
*****
******
*******
********
*********
**********
Espero ter ajudado, abraço! */
Muito obrigado Lucas, me ajudou bastante e deu pra entender melhor a lógica disso.
Fico feliz por ter ajudado brother! Boa sorte nos estudos!