Duvida no laço while, diferença

1 resposta
programação
Frederico13

a) Duvida no laço while:

int idade = 15
while (idade < 18) {
idade = idade + 1;
System.out.println(idade);
}

no console: 16 17 18

Mas um teste que fiz foi:

int idade = 15
while (idade < 18) {
System.out.println(idade);
idade = idade + 1;
}

no console: 15 16 17

Porque???

b) Uma tela com JSF para salvar um Produto, por exemplo, qual a difereça de um método salvar, editar ou excluir com ou sem paramentros ja que ambos os cruds irão salvar o produto no banco de dados?

public void salvar(Produto produto) {
dao.salvar(produto);
}

public void salvar() {
dao.salvar(produto);
}

Diferenças entre eles?

1 Resposta

wldomiciano

a) No primeiro caso, cuja saida é 16 17 18, vc soma um e imprime o valor resultante.

  • Se é 15, soma +1 (vira 16) e imprime 16
  • Se é 16, soma +1 (vira 17) e imprime 17
  • Se é 17, soma +1 (vira 18) e imprime 18
  • Se é 18, não entra no loop.

No segundo vc faz o contrário, imprime depois soma.

  • Se é 15, imprime 15 e soma +1 (vira 16)
  • Se é 16, imprime 16 e soma +1 (vira 17)
  • Se é 17, imprime 17 e soma +1 (vira 18)
  • Se é 18, não entra no loop.

b) Não dá pra dizer muito sem conhecer mais seu código, mas uma explicação genérica seria que em salvar(Produto produto) vc estaria salvando um produto externo que seria passa pra este método. Já em salvar() vc estaria salvando um produto interno.

class Whatever {
    private Produto produto;

    public void salvar() {
        dao.salvar(produto); // salva o produto contido na variável de instancia
    }

    public void salvar(Produto produto) {
        dao.salvar(produto); // salva o produto contindo no parametro do método
    }
}
Criado 14 de outubro de 2017
Ultima resposta 14 de out. de 2017
Respostas 1
Participantes 2