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

Dúvida no loop

Pfv em que momento a variável coluna é incrementada?

for(int coluna=0;coluna<=10;coluna++) {
                if(coluna>linha) {
                    break;//O break irá interromper apenas o laço de repetição mais 
                         // interno que o contém.
                }
                System.out.print("*");

na primeira passagem vale 0, ele lê todo o programa e só após incrementa ou nao, ele executa o código e incrementa qse que simultaneamente?

obg

10 respostas

Fala Georg, tudo bom?

Lembrando da assinatura:

for (comandos de inicialização;condição de teste;incremento/decremento) 
{ 
// comandos a serem repetidos 
// comandos a serem repetidos 
}
// comandos após o 'for'

Os passos de um for são os seguintes:

1 - Executa os comandos de inicialização;

2 - Testa a condição;

3 - Se a condição for falsa então executa o comando que está logo após o bloco subordinado ao for .

4 - Se condição for verdadeira então executa os comandos que estão subordinados ao for;

5 - Executa os comandos de incremento/decremento;

6 - Volta ao passo 2.

Espero ter ajudado!

Abraços!

Olá Paulo td bem e vc?

entao acho que entendi, sempre que ele entra no segundo loop a variável coluna é inicializada, sendo assim, linha valerá 2 (pq já estaremos na segunda iteração) e a variável coluna volta a valer 1 correto? pq ela é reinicializada.... é isso msm?

for(int linha=1;linha<=4;linha++) {
            System.out.print("Linha "+linha+": ");
            for(int coluna=1;coluna<=4;coluna++) {
                if(coluna>linha) {
                    break;
                }

valeu,

Georg Lucas

Fala Georg!

É isso mesmo! Sempre que o loop mais interno terminar sua iteração, o loop mais externo continuará e fará com que esse loop referente as colunas seja novamente iniciado, fazendo com que a variável coluna seja novamente inicializada com o valor 1.

Ficou claro? Caso não tenha entendido é só falar que tento explicar de uma outra forma!

Abraços Georg!

ficou sim, era justamente isso que estava me confundindo...valeu meu caro!

Georg Lucas

Opa Georg! Tudo bom?

Fico feliz em ter te ajudado! Não se esqueça de marcar a resposta que te ajudou como solução! Dessa forma ajudamos que possa vir a ter a mesma dúvida que a sua!

Abraços amigo!

Só pra acrescentar: esse for dentro de um for é chamado de nested loop.

Muito usado pra percorrer matrizes (arrays multi-dimensionais).

Abraço

E a condição de parada pode ser adicionada com o && ao invés de utilizar o break.

Que fica bem menor o tempo de execução do for.

Abraços

Edit: desculpe o erro, mas o correto era ||

Fala pessoal blz? vc poderia me dar um exemplo de como seria essa condição de parada com &&?

valeu

solução!

Fala Georg!

A assinatura de um for com mais condições de parada seria a seguinte:

for( int i = 0 ; i < 100 || algumaOutraCondicao() ; i++ ) {
  ...
}
for( int i = 0 ; i < 100 && algumaOutraCondicao() ; i++ ) {
  ...
}

Repare que podemos utilizar tanto o operandor AND (&&) quanto o OR (||).

Esperto ter ajudado!

Abraços e bons estudos!

Eae Paulo,

Mto bacana cara...valeu, mais uma que aprendi rs