1

Tenho que imprimir os 30 números anteriores ao número escolhido pelo usuário.

while(valor > (30 - valor)){
    System.out.println(valor);
    --valor;
}

fiz assim, mas ele não imprime os 30 anteriores, as vezes sim, as vezes não, onde posso estar errando? (tem que ser feito com while).

1 Resposta 1

0

Cria uma variável auxiliar, enquanto o valor for maior ou igual que ele mesmo menos 30, printa e diminui em 1 o valor. O problema no teu código é que ao mesmo tempo que tu faz a validação se valor > 30-valor você também muda dentro do while o valor, ou seja, supondo que 60 é o valor, a cada laço acontece isso:

1ª 60 > 30 - 60 //true

2ª 59 > 30 - 59 //Sim

3ª 58 > 30 - 58 //Sim

4ª ...

Com a var auxiliar fica assim:

int aux = valor-30;
while(valor >= aux){
   System.out.println(valor);
   --valor;
}
1
  • 1
    Valeu pela resposta!!! (desculpa pelo palavreado na pergunta original, não tinha conhecimento das restrições.) Commented 4/06/2017 às 16:43

Você deve fazer log-in para responder a esta pergunta.

Esta não é a resposta que você está procurando? Pesquise outras perguntas com a tag .