1
resposta

Por que ele não aceitou o coluna++ no lugar do coluna +1?

Olá, o título é autoexplicativo, cheguei na resposta, mas antes havia tentado o coluna++ que até então havia presumido que haveria a função de soma-lo ele mesmo com +1 e não funcionou, segue o código:

    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();
            }
        }
1 resposta

Oii Filipe, tudo certo?

Desculpa pela demora em obter retorno.

O que acontece é que, no for, a terceira declaração espera uma operação de atribuição, e para fazermos uma operação de atribuição, precisamos geralmente do operador `=´:

int variavel = 3;
variavel = variavel + 5;

Ao fazermos coluna +1 fica faltando essa operação de atribuição, é como se você não estivesse falando para o compilador como a variável coluna vai ser atualizada ao longo do for. Ao fazermos coluna++, também não aparece o =, porém essa declaração é um resumo da declaração coluna = coluna+1, que é o que queríamos. Por isso você teve esses problemas que descreveu.

Uma outra observação que gostaria de fazer é que usar o coluna++ é interessante no for. Porém, no System.out, você não quer imprimir e atualizar a variável ao mesmo tempo, certo? Quer apenas imprimir o valor atual incrementado de 1 (porque esse valor deve ser atualizado somente no for). Por isso, acho válido trocar de coluna++ para coluna+1.

Espero ter ajudado! Qualquer dúvida, estou por aqui :)

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software