2
respostas

DÚVIDA SOBRE EXEMPLO DE MATRIZ TRIANGULAR

Não consigo compreender como que a cada iteração ele imprime um novo asterisco na linha. Linha e coluna começam com 0 em seus for, no for da coluna ele vai imprimir um asterisco e quando voltar coluna será somado +1 e passará a ser 1, logo é maior que linha e ele nem executa novamente e sai do for, executando um System.out.println(); e retornando ao primeiro for que agora também é somado e passa a ser 1. Novamente o programa entra no segundo for e imprime um asterisco, mas na próxima iteração coluna passa a ser 2 e portanto maior que linha, pq que mesmo assim ele entra novamente e imprime mais um asterisco na linha ? Ele não deveria ter saído ?

public class TestaLacos2 {

public static void main(String[] args) {


        for(int linha = 0; linha < 10; linha++ )                 {

            for(int coluna = 0; coluna <10; coluna++) {

                if(coluna > linha) {
                    break;
                }

                System.out.print("*");

                                                    }    
            System.out.println();

                                                                 }

    }

}

Acredito que a causa de eu não entender seja pq deixei algo passar batido enquanto estudava o funcionamento de um for, não sei se é isso mesmo.

2 respostas

Boa tarde, Douglas.

Toda vez que o ocorre um break no loop interno a variável int coluna deixa de existir, pois ela pertence apenas ao escopo do for interno. Portanto, a cada rodada do loop externo (que incrementa +1 na variável linha) a variável int coluna do loop interno irá iniciar com o valor 0.

Obrigada, tinha ficado com a mesma dúvida, agora ficou claro.