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 :

Problème boucle switch


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Problème boucle switch
    Bonjour,

    Alors, en codant un programme supposé donner le jour qu'il était à une date donnée, je me retrouve avec une exception que je ne comprends pas. Mon programme est ( je ne vois pas la différence en tout cas, mais c'est là que vous intervenez ! ) identique à celui- ci http://docs.oracle.com/javase/tutori...ts/switch.html

    Voilà ledit programme :

    String Jour;
    switch(Reste){
    case(0):
    Jour = "Mercredi";
    break ;
    case 1 : Jour = "Jeudi";break ;
    case 2 : Jour = "Vendredi";break ;
    case 3 : Jour = "Samedi";break ;
    case 4 : Jour = "Dimanche";break ;
    case 5 : Jour = "Lundi";break ;
    case 6 : Jour = "Mardi";break ;

    }
    System.out.println( Jour );

    L'exception est à la dernière ligne : "The variable Jour may not have been initialized", et ça me propose de rajouter un "= null" lors de la déclaration de Jour. J'ai essayé : cela ne résout pas mon problème !

    Voilà, merci d'avance pour votre aide et bonne journée

  2. #2
    Membre averti
    Femme Profil pro
    Enseignant
    Inscrit en
    Novembre 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 52
    Par défaut
    Bonjour, ce sera mieux comme cela.

    String Jour = "Mercredi";
    switch(Reste){
    case(0):
    break ;
    case 1 : Jour = "Jeudi";break ;
    case 2 : Jour = "Vendredi";break ;
    case 3 : Jour = "Samedi";break ;
    case 4 : Jour = "Dimanche";break ;
    case 5 : Jour = "Lundi";break ;
    case 6 : Jour = "Mardi";break ;

    }
    System.out.println( Jour );

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci de ta réponse rapide ! Alors, en copiant ton code, j'arrive à ceci :
    "2
    Mercredi"

    En ayant mis avant le switch un "System.out.println(Reste)" pour m'assurer que la sortie du switch et le Reste correspondent, et il semble que ce ne soit pas le cas : en fait, peut importe les modifications effectuées, il semble que le switch soit ignoré lors de la compilation ! Que faire ?

  4. #4
    Membre averti
    Femme Profil pro
    Enseignant
    Inscrit en
    Novembre 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 52
    Par défaut
    Bien sur ... le switch oriente suivant la valeur de Reste.
    Modifie là et le jour changera.Tiens ici je la fixe à 1.
    Mais il est évident que c'est une variable qui ne dois pas rester figée à 1 comme cela.
    Ici c'est juste pour te montrer !

    Pense à mettre "Résolu" si la réponse à la question initiale à été atteinte dans le titre de ton sujet.


    String Jour = "Mercredi";
    int Reste=1;
    switch(Reste){
    case 0 : Jour = "Mercredi";break ;
    case 1 : Jour = "Jeudi";break ;
    case 2 : Jour = "Vendredi";break ;
    case 3 : Jour = "Samedi";break ;
    case 4 : Jour = "Dimanche";break ;
    case 5 : Jour = "Lundi";break ;
    case 6 : Jour = "Mardi";break ;

    }
    System.out.println( Jour );

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ben je suppose que c'est ton Reste qui est mal initialisé, on ne vois pas comment tu l'initialise.


    Quand au code, il serait mieux comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    String Jour;
    switch(Reste){
    case 0 : Jour = "Mercredi";break ;
    case 1 : Jour = "Jeudi";break ;
    case 2 : Jour = "Vendredi";break ;
    case 3 : Jour = "Samedi";break ;
    case 4 : Jour = "Dimanche";break ;
    case 5 : Jour = "Lundi";break ;
    case 6 : Jour = "Mardi";break ;
    default: Jour = "Erreur, jour invalide"; 
    }

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Et il se trouve que le cas default était bien dans le tutoriel d'Oracle et pas dans le code essayé. C'est ça qui fait qu'ils ne sont pas identiques et c'est ça qui a provoqué l'erreur.

    Par ailleurs "The variable Jour may not have been initialized" n'est pas une exception, c'est une erreur de compilation. Les exceptions arrivent quand un programme est en cours d'exécution. Pas quand on essaie de le compiler.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Par défaut Un autre exemple avec reste contenant 4
    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
    public class SwitchDemo2
    {
     
    public static void main(String[] args)
    {
      int reste = 4; 
    String jour = "Le jour est ";
     
     switch(reste)
     {
     case(0): jour += "Mercredi";
     break ;
     case 1 : jour += "Jeudi";
     break ;
     case 2 : jour += "Vendredi";
     break ;
     case 3 : jour += "Samedi";
     break ;
     case 4 : jour += "Dimanche";
     break ;
     case 5 : jour += "Lundi";
     break ;
     case 6 : jour += "Mardi";
     break ;
     
    default: jour = "Le jour " + reste + " est invalide";
    }
    System.out.println(jour + ".");
    }
    }
    Cordialement,

    Dan

  8. #8
    Membre éclairé Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Par défaut
    Juste une précision, le switch sur une String ne marche pas avant Java 7. Je ne sais pas si c'est ton cas (on ne connait rien sur Reste) mais si tu compile en Java 6 ou inférieur, c'est switch sur int uniquement.

Discussions similaires

  1. [1.x] Probléme avec l'utilisation de la boucle switch
    Par farhaenis dans le forum Symfony
    Réponses: 9
    Dernier message: 03/03/2011, 16h56
  2. Problème de boucle Switch Case
    Par mLk92 dans le forum Langage
    Réponses: 4
    Dernier message: 14/06/2007, 17h20
  3. [FLASH 8] Problème Boucle For
    Par Begood dans le forum Flash
    Réponses: 6
    Dernier message: 21/03/2006, 11h36
  4. [Cookies] problème de switch
    Par artotal dans le forum Langage
    Réponses: 1
    Dernier message: 28/12/2005, 02h35
  5. [Tableaux] Problème avec Switch case
    Par philippef dans le forum Langage
    Réponses: 4
    Dernier message: 07/09/2005, 16h37

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