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

Langage Java Discussion :

[Language]Variable pas initialisée ?


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 73
    Points : 58
    Points
    58
    Par défaut [Language]Variable pas initialisée ?
    Bonsoir à tous,

    Je débute en programmation Java (et en programmation en général), aussi j'aurais une question.

    J'ai réalisé un petit programme, mais qui me pose problème. Le compilateur indique que la variable "calcul" n'a pas été initialisée. Où se situe le problème ? Celle-ci n'a-t-elle pas été initialisée lors du Switch ?

    Merci beaucoup de votre aide !
    Metallic-84s

    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
    	static int calculer(int x, int y) {
    		System.out.print("Surface ('s/S') ou périmètre ('p/P')?");
    		char c = Support.readChar();
    		int calcul;
    		switch (c) {
    			case 's' :
    				calcul = x * y;
    				break;
    			case 'S' :
    				calcul = x * y;
    				break;
    			case 'p' :
    				calcul = 2 * x + 2 * y;
    				break;
    			case 'P' :
    				calcul = 2 * x + 2 * y;
    				break;
    			default :	
    				System.out.println("Merci d'entrer 's/S' pour la surface ou 'p/P' pour le périmètre.");
    				calculer(x, y);
    		}
    		return calcul; // Apparemment, la variable n'est pas initialisée à ce niveau du programme.
    	}

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Quand tu déclares la variable calcul de type int, il faut que tu l'initialises comme ceci :
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 73
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par c_nvy
    Quand tu déclares la variable calcul de type int, il faut que tu l'initialises comme ceci :
    Oui ok... Et donc je ne peux pas l'intialiser dans le Switch comme je l'ai fait ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [...]
             case 's' :
                calcul = x * y;
                break;
    [...]

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Initialiser une variable, c'est lui donner une valeur par défaut.
    Donc, après, tu peux faire calcul = x*y sans aucun problème.
    Modératrice Java - Struts, Servlets/JSP, ...

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 73
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par c_nvy
    Initialiser une variable, c'est lui donner une valeur par défaut.
    Donc, après, tu peux faire calcul = x*y sans aucun problème.
    Ok merci ! Mais par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int calcul;
    calcul = x * y;
    ... aurait été possible. Donc si je comprends bien, c'est la structure de contrôle Switch qui pose problème, qui ne permet pas cette initialisation ?

  6. #6
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Salut,

    Citation Envoyé par Metallic-84s
    Donc si je comprends pas, c'est la structure de contrôle Switch qui pose problème, qui ne permet pas cette initialisation ?
    Ouaip, parce que si ton switch se branche sur "default", c'est à ce moment-là que calcul n'est pas initialisé.
    En gros il faut que quelque soit l'issue du switch, ta variable calcul soit initialisée... Surtout quand tu as un "return calcul" en dehors du switch...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  7. #7
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 73
    Points : 58
    Points
    58
    Par défaut
    Merci beaucoup ! J'ai compris cette fois !

    Très bonne soirée.

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

Discussions similaires

  1. passage de variable pas l'URL
    Par mariafan dans le forum Langage
    Réponses: 6
    Dernier message: 29/05/2007, 14h51
  2. [MySQL] Variable pas prise en compte dans la requête
    Par Zenerox dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 24/04/2007, 21h54
  3. [POO] Variable pas prise en compte
    Par cyrill.gremaud dans le forum Langage
    Réponses: 21
    Dernier message: 18/08/2006, 20h10
  4. [Migration VBA] Changer de language ou pas ?
    Par Myogtha dans le forum Windows
    Réponses: 3
    Dernier message: 20/01/2006, 14h58
  5. [Language]Variables variables
    Par Vader_666 dans le forum Langage
    Réponses: 4
    Dernier message: 25/04/2005, 22h52

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