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!!!!
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!