Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Leitura dos aninhamentos dos laços

public class TestaFor {
        public static void main(String args[]) {
            for (int linha = 0; linha < 5; linha++) {
                for (int coluna = 0; coluna < 5; coluna++) {
                    if (coluna > linha) {
                        break;
                    }
                    System.out.print(coluna + 1);
                }
                System.out.println();
            }
        }
    }

Minha dúvida é na leitura dos loops: Por exemplo, no primeiro "for" definido ele entra com a variável "int linha = 0", aí entra no próximo "for" com o "int coluna = 0". Até aí tudo bem. Daí ele entra no if com os dois valores 0 por enquanto, certo? então ficaria if ( 0 > 0 ) e faz a instrução do if (que é break).

Mas não daria sempre falsa essa instrução? Já que 0 não é maior que 0. E na próxima somaria 1 em cada e ficaria if ( 1> 1 ). Aí daria false novamente. Não estou entendendo porque esse programa compila. (resposta correta do exercício).

3 respostas
solução!

Quando coluna torna-se maior que linha(coluna ==1 e linha ==0 ), o loop dela se quebra, logo linha receberá +1 e coluna voltará a valer 0, coluna só se quebrará novamente quando coluna == 2. Isso ocorre pois um loop está dentro do outro, o "pai" só incrementa seu valor quando o "filho" acaba.

Olá Túlio, tudo bem?

Sua dúvida foi solucionada?

Olá Túlio.

Vi que marcou o tópico como solucionado. Estou fechando o tópico ok?

Qualquer coisa não hesite em abrir outro tópico!