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 :

Exception avec Switch/Case


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Exception avec Switch/Case
    Bonjour,

    J'ai un problème de saisie avec un Switch/Case. En faite, tous les cas de saisie marchent parfaitement sauf lorsque l'on ne saisie rien et que l'on appuie sur 'enter'...

    J'ai le message d'erreur suivant :

    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    at java.lang.String.charAt(Unknown Source)
    at Menu.TourJoueurHumain(Menu.java:17)
    at Menu.main(Menu.java:260)


    Et voilà mon code :

    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
    public static void TourJoueurHumain(XXX){
      .....
      System.out.println("Où voulez-vous aller? (H)aut,(B)as,(G)auche ou (D)roite.");
      String sChoix = LectureClavier.lireChaine();
      char cChoix = sChoix.charAt(0);
      switch(cChoix) {
        case 'H':
          ...
        case 'B':
          ...
        case 'G':
          ...
        case 'D':
          ...
        default:
          ...
      }
    ...
    J'ai tout essayé mais rien ne fonctionnait...

    Merci de me venir en aide...
    __
    Gwaedion

  2. #2
    Membre actif Avatar de hydraland
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Points : 239
    Points
    239
    Par défaut
    Salut,

    Premièrement pense à mettre ton code dans la balise approprié (# sur l'interface).
    Pour ton problème pourquoi tu ne bouclerais pas tant que la taille de la chaine sChoix est inférieur à zéro? Car ton problème vient du fait qu'une chaine vide n'a aucun caractère.

    A+
    Hydraland

  3. #3
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut
    Salut

    lorsque tu tapes la touche Entrée, la chaine str_choix est égale à ""..
    c'est normal donc que charAt(0) lève une exception..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class Tester{
    	public static void main(String[] args){
    			String str_choix = System.console().readLine();
                            char c_choix;
    			if(!str_choix.equals("")){
    				c_choix = str_choix.charAt(0);
    			}				
    	}
    }
    Cordialement..

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup de vos réponse ! ça marche !
    j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    System.out.println("Où voulez-vous aller? (H)aut,(B)as,(G)auche ou (D)roite.");
                String sChoix = LectureClavier.lireChaine();
                char cChoix = '0';
                if(!sChoix.equals("")){
                    cChoix = sChoix.charAt(0);
                }
     
                switch(cChoix)
                {

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

Discussions similaires

  1. Problème avec Switch case
    Par Med_be dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 09/04/2011, 15h14
  2. [Netbeans for PHP] Formatage du PHP avec switch case
    Par bigben89 dans le forum NetBeans
    Réponses: 1
    Dernier message: 10/12/2008, 09h22
  3. [Système] Probleme avec un switch case!
    Par Death83 dans le forum Langage
    Réponses: 7
    Dernier message: 29/01/2006, 16h28
  4. Erreur de compilation avec SWITCH et CASE
    Par barbarello dans le forum C++
    Réponses: 4
    Dernier message: 21/01/2006, 21h47
  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