Dúvida sobre while com flag (Resolvido!)

4 respostas
rguterres

Olá a todos!

Sou novo no fórum e iniciante em JAVA.

Bom, lá vai minha primeira dúvida :smiley: estou fazendo alguns exercícios do livro do Deitel (8º edição) e estou com o seguinte problema: o código está funcionando certinho, mas na hora de gerar o resultado ele sempre adiciona + 1, tipo, 100/10=10 só que no meu código fica 11.

Nem vou por o enunciado completo, o código só precisa calcular o consumo do veículo e mostra o resultado. Como não tem um número x de abastecimentos eu fiz com um while com flag.

import java.util.Scanner;

public class Combustivel 
{
    public static void main(String[] args) 
    {
        Scanner input = new Scanner(System.in);
        
        int km = 0; // Quilometros percorridos
        int gas = 0; // Quantidade de combustível
        int viagens = 0; // Total de viagens 
        int consumo = 0; // gas/km
        
        // Pede para usuário a quantidade de litros de gasolina
        System.out.print("Quantos litros de gasolina deseja colocar?");
        gas = input.nextInt();
        
        // Pede para usuário a quilometragem
        System.out.print("Quantos km você rodou?");
        km = input.nextInt();
        
        // Enquanto gas for diferente de -1 
        while (gas != -1)
        {   
            consumo = gas/km; // Fórmula para calcular consumo
            consumo ++; 
            
            //viagens = viagens 
            viagens ++;
            
            // Repete o laço
            System.out.print("Quantos litros de gasolina deseja colocar?");
            gas = input.nextInt();
                        
            if (gas != -1)
            {
                System.out.print("Quantos km você rodou?");
                km = input.nextInt();
            }
       }
       
       System.out.printf("Consumo total:%d\n", consumo);
       System.out.printf("Total de viagens:%d\n", viagens);
        
    }
}

Até +

4 Respostas

edu_fernandes

Tranquilo, dúvidas todos temos.

Toda grande caminhada começa com o primeiro passo.

Mas antes de dar o segundo passo use a tag code pra melhorar a formatação desse código no html por que assim é difícil de entender algo. Rss.

Abraço.

pvrsouza

Retire esta linha do seu código: consumo ++; Veja se funciona. :slight_smile:

ribclauport

Além do consumo++, existe também

essa linha

consumo = gas/km

Km por litro na verdade não seria calculado de modo inverso?

100km com 10 litros --> 100/10 ou seja km/consumo.

rguterres

Opa, valeu pela dica edu_fernandes.
pvrsouza e ribclauport, valeu, realmente era só tirar o consumo++.
Até +

Criado 24 de fevereiro de 2012
Ultima resposta 27 de fev. de 2012
Respostas 4
Participantes 4