Partage
  • Partager sur Facebook
  • Partager sur Twitter

break avec labels ne fonctionne pas dans Eclipse Java EE

Sujet résolu
    12 janvier 2011 à 7:15:24

    Bonjour !

    je suis en train d'apprendre le Java et j'utilise Eclipse Java EE.
    Je viens de découvrir l'utilisation des labels pour les breaks et j'ai voulu tester avec le code suivant :

    import java.util.Scanner;
    
    
    public class sdz1 {
    
    	/**
    	 * @param args
    	 */
    	
    	public static void main(String[] args) {
    
    		Scanner sc = new Scanner(System.in);
    		String str = new String();
    		char reponse;
    		int i;
    		System.out.println("Nous allons compter jusqu'à 10");
    
    		rec : for (i=0; i<= 9; i++)
    		{
    			System.out.println("Voulez-vous continuer, réinitialiser ou sortir (C/R/S) ?");
    			str = sc.nextLine();
    			reponse = str.charAt(0);
    			if(reponse == 'R')
    				break rec;
    			else if(reponse == 'S')
    				break;	
    			else
    			System.out.println("Et de ... " +i);
    		}
    		
    		System.out.println("C'est terminé !");
    		
    	}
    }
    


    Mais quand j'exécute ce code dans Eclipse, si je presse sur 'R' le programme se termine plutôt que de recommencer à la ligne 18... Quelqu'un a-t-il une explication ? Est-ce que je fais mal quelque chose ou est-ce un bug d'Eclipse ? J'ai cherché sur Google mais je n'ai trouvé aucune réponse...

    James
    • Partager sur Facebook
    • Partager sur Twitter
      12 janvier 2011 à 8:35:42

      bonjour,
      c'est continue rec; que tu dois utiliser pour ce que tu veux faire, même si au passage cela ne réinitialise rien. Tout simplement ça n'exécute pas l'instruction de la ligne 28 parce ça revient au début de la boucle.
      break et break étiquette sortent de la boucle de la même façon.
      Mais coder ainsi n'est pas du tout structuré.

      Regarde ça et teste-le si tu veux ...
      Scanner sc = new Scanner(System.in);
      String str = new String();
      char reponse = 'C';
      int i = 1;
      System.out.println("Nous allons compter jusqu'à 5");
      while(i<=5 && reponse != 'S')
      {
         System.out.println("Voulez-vous continuer, réinitialiser ou sortir (C/R/S) ?");
         str = sc.nextLine();
         reponse = str.charAt(0);
         if(reponse=='R') i = 1;
         System.out.println("Et de ... " + i);
         i++;
      }
      System.out.println("C'est terminé !");
      
      • Partager sur Facebook
      • Partager sur Twitter
        14 janvier 2011 à 13:08:45

        Merci sicilien007... J'avais en effet compris mon erreur par la suite mais pas de connexion pour le signaler. Je vais apprendre à me hâter avec lenteur :-)
        • Partager sur Facebook
        • Partager sur Twitter

        break avec labels ne fonctionne pas dans Eclipse Java EE

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown