Ajuda no codigo!

4 respostas
C

Ola pessoal, estou quaser terminando de fazer a aplicacao, se alguem puder me ajudar!!!

/* Programa que lê e rescebe a entrada do usuário para
   a quantidade de km rodados usando a sentinela e quantos litros foram 
   usados pelo carro, ele calcula a média de km/l e 
   soma ao total de litros de combustível, mas
   que só entrar no looping se o numero digitado for 1 ou 2        */
   
  import javax.swing.JOptionPane;
  import java.text.DecimalFormat;

    public class Entrada1ou2 {
      public static void main(String[] args) {
     
        String entradaKm;
        String entradaLt;
        int km;
        int litros;
        int totalLt;
        int totalKm;
        double media;
       
          entradaKm = "";
          km = 0;
          totalKm = 0;

          litros = 0;
          totalLt = 0;
          
          media = 0;

            while(km != -1) {

               while( km != 1 || km != 2) {
                 entradaKm = JOptionPane.showInputDialog( " ! Digite o número de Km rodados ou -1 pra calcular ! " );
                 km = Integer.parseInt( entradaKm );
                 
                   if(km == -1) {
                     media = ( double ) totalKm / totalLt ;
                     break;
                   }
               }

               totalKm += km;

               while(  litros != 1 ||litros != 2) {
                 entradaLt = JOptionPane.showInputDialog( " ! Digite o número de Litros usados ! " );
                 litros = Integer.parseInt( entradaLt );
               }

               totalLt += litros;
            }
            
            DecimalFormat aproximador = new DecimalFormat( " 0.00 " );

            if (totalLt > 0) {
              JOptionPane.showMessageDialog( null,
                " Você percorreu " + totalKm + " Km " + " \n " +
                " Gastou " + totalLt + "Litros" + "\n" +
                " A média de Km/l foi de " + aproximador.format(media) + "Km/l", " Informações Gerais ",
                JOptionPane.INFORMATION_MESSAGE );
            }
            else {
              JOptionPane.showMessageDialog(  null,
                " ! Digite os Litros consumidos ! ", " ! Erro em Efetuar o Calculo ! ",
                JOptionPane.WARNING_MESSAGE );
            }
            
            System.exit( 0 );
      }
    }

Abracao e te +

4 Respostas

S

Aew, o q esta faltando pra vc terminar o programa??
Se quiser ajuda eu posso dar alguma!

Flw

C

slask, valeu pela compreencao. Deixa eu explicar, nao consigo sair do looping do while, nao sei o q esta acontecendo, copia o codigo e roda pra vc ver realmente o q esta acontecendo!!!

Brigadao e espero sua opniao!!

Abracao e té +

W

Caro Ratinho,

Me parece que vc está tentando desenvolver o exercício 4.11 do lívro do Deitel.
O que vc deve fazer é, a cada looping obter primeiro a kilometragem e depois obter os litros. Exemplo:


while(km != -1) {

entradaKm = JOptionPane.showInputDialog( " ! Digite o número de km rodados ou -1 pra calcular ! " );

km = Integer.parseInt( entradaKm );
if ( km != -1 ) { 
        totalKm += km; 
        entradaLt = JOptionPane.showInputDialog( " ! Digite o número de Litros usados ! " ); 
        litros = Integer.parseInt( entradaLt ); 
        totalLt += litros; 
   }

}

media = totalKm / totalLt;


Pode ser uma boa opção pois ele só irá atribuir km a totalKm se km for diferente de -1 e atribuirá a quantidade de litros somete se km for diferente de -1. Se o usuário digitar -1 ele sairá do looping e, observe que nem precisou do comando break.

N

E pq não termina?! :roll:

Criado 25 de março de 2004
Ultima resposta 25 de mar. de 2004
Respostas 4
Participantes 4