IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Exécuter sans initialisation.


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Exécuter sans initialisation.
    Bonjour, je cherche à exécuter une application que je vien de coder, mais sans initialiser certaines variables, car elles seront demandées à l'utilisation du programme, mais je n'y arrive pas car je ne cesse d'obtenir l'erreur: variable distance might not have been initialized. Je les ai bien sûr déclarées, mais après plusieurs recherches je n'ai toujours pas trouvé comment faire fonctionner mon application. Merci de bien vouloir m'aider, et voici également le code que j'utilise.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    import javax.swing.JOptionPane;
    import java.text.DecimalFormat;
     
    public class EstimerCoutVoyageNo2
    {
     
     
        public static void main(String[] args)
       {
          // Déclaration des variables
          double consAuto;
          int distance;
          int nbPass;
          double prixLitre;      
          double a1 = ( distance / ( consAuto / 100 ) );
          double a2 = (1+(0.05 * nbPass));
          double nbLitres = a1 + a2;
          double coutAllerSimple = nbLitres * prixLitre;
          double coutAllerRetour = coutAllerSimple * 2;
     
            // Création des formats d'affichage
          DecimalFormat uneDecimale = new DecimalFormat ("###,##0.0"); 
          DecimalFormat deuxSous = new DecimalFormat ("###,##0.00 $"); 
     
          //Afficher le but du programme
          JOptionPane.showMessageDialog(null,
                                             "Ce programme estime les coûts d'essence pour un voyage en automobile.",
                                             "Présentation du programme EstimerCoutVoyage",
                                                 JOptionPane.INFORMATION_MESSAGE );                                                                           
          // Demander la consommation de l'auto, la distance parcourue, le prix du litre d'essence
          // ainsi que le nombre de passagers
             consAuto =
                Double.parseDouble(JOptionPane.showInputDialog(null,
                          "Consommation en litre/100 km ?", "Saisie", JOptionPane.QUESTION_MESSAGE));
             distance =
                Integer.parseInt(JOptionPane.showInputDialog(null,
                          "Distance en km ?", "Saisie", JOptionPane.QUESTION_MESSAGE));
             prixLitre = 
                Double.parseDouble(JOptionPane.showInputDialog(null,
                            "Prix du litre d'essence ?", "Saisie", JOptionPane.QUESTION_MESSAGE));
             nbPass = 
                Byte.parseByte(JOptionPane.showInputDialog(null,
                            "Nb de passagers(autre que le conducteur) ?", "Saisie", JOptionPane.QUESTION_MESSAGE));
     
          // Calculer le nombre de litres consommés ainsi que le coût du déplacement (aller et aller/retour)
            coutAllerSimple = (nbLitres * consAuto);
     
          // Afficher les résultats
          JOptionPane.showMessageDialog (null, 
            "Données saisies:\n1. Consommation en litre/100 km: " + uneDecimale.format(consAuto) + 
             "\n2. Distance en km: " + distance + 
             "\n3. Prix du litre d'essence: " + deuxSous.format(prixLitre) +
             "\n4. Nb de passagers: " + nbPass + 
             "\n\nRésultats estimés:\n1. Nb de litres consommés à l'aller: " + uneDecimale.format(nbLitres) +
             "\n2. Coût à l'aller: " + deuxSous.format(coutAllerSimple) +  
             "\n3. Coût à l'aller/retour: " + deuxSous.format(coutAllerRetour),
             "Résultat", JOptionPane.INFORMATION_MESSAGE);
     
          System.exit(0);       
       }
    }
    Error(28,21): variable distance might not have been initialized
    Error(28,34): variable consAuto might not have been initialized
    Error(29,30): variable nbPass might not have been initialized
    Error(31,43): variable prixLitre might not have been initialized

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 565
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 565
    Points : 21 630
    Points
    21 630
    Par défaut
    Simple :
    - ne déclare les variables qu'au moment de leur donner une valeur.
    - ne cherche pas à initialiser une variable dont la valeur dépend d'autres variables dont tu ne connais pas encore la valeur. Ne le fais qu'après que tu connaisses déjà les valeurs.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci bien pour cette réponse rapide

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    Tu devrais ajouter la gestion des erreurs de saisie. Par exemple si l'utilisateur saisie 10,3 à la place de 10.3, je pense qu'une NumberFormatException va être lancé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/04/2008, 09h38
  2. Exécutable sans besoin de ses classes
    Par Triste dans le forum Débuter
    Réponses: 4
    Dernier message: 25/10/2007, 11h52
  3. Création d'un exécutable sans le Compiler
    Par sisyjosi dans le forum MATLAB
    Réponses: 4
    Dernier message: 12/09/2007, 10h30
  4. [Continuum] Tache du Build qui s'exécute sans modification du scm
    Par coco62 dans le forum Intégration Continue
    Réponses: 9
    Dernier message: 24/07/2007, 11h23
  5. Page s'exécutant sans raison apparente
    Par j_bolduc dans le forum ASP
    Réponses: 4
    Dernier message: 23/02/2006, 15h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo