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

sobre o exercício

Fiz o exercício mas deu diferente do resultado real, tive que alterar a composição e ficou assim. Compilou corretamente

public class programa {

    public static void main(String args[]) {
        for(int linha = 0; linha <= 5; linha++) {
            for (int coluna = 1; coluna <= 5; coluna++) {
                if ( coluna > linha ) {
                    break;
                }
                System.out.print( coluna );
            }
            System.out.println();
        }
    }
}
6 respostas
solução!

Boa noite, Helton! Como vai?

Um detalhe interessante desse código é que aparentemente ele dá o resultado esperado, mas na realidade o resultado não é o correto! O seu código vai resultar em:


1
12
123
1234
12345

Repare que antes de imprimir o primeiro número 1 há uma linha vazia! Então esse resultado não condiz com o que era esperado que era o primeiro número 1 ser impresso na primeira linha.

DESAFIO: Vc consegue resolver esse problema? Se sim, cole aqui a sua resposta!

o problema esta nas linhas

for(int linha = 0; linha <= 5; linha++) {
for (int coluna = 1; coluna <= 5; coluna++) {

o primeiro for, a variável linha inicializa com "0" o segundo inicializa com 1, ai esta a linha vazia ou você coloca 1 no primeiro e no segundo for ou 0 no primeiro ou segundo for

veja a correção do código a baixo

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 );
            }
            System.out.println();
        }
    }
}

Denis, na realidade a sua solução tbm não está correta pq a saída do seu código é:

0
01
012
0123
01234
012345

Quando o esperado seria:

1
12
123
1234
12345

Mas então foi o que eu escrevi, você coloca 1 no primeiro e no segundo for "ou" 0 no primeiro ou segundo for. ai começa pelo zero ou 1 ele escolhe.

é porque você colocou o código "corrigido" sem a correção, de fato

public class programa {

    public static void main(String args[]) {
        for(int linha = 1; linha <= 5; linha++) {
        // começa de 1, se não gera linha vazia.
            for (int coluna = 1; coluna <= 5; coluna++) {
                if ( coluna > linha ) {
                    break;
                }
                System.out.print( coluna );
            }
            System.out.println();
        }
    }
}

com saída:

1
12
123
1234
12345

fiz de novo e deu certo