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 :

un goto en java!


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 32
    Par défaut un goto en java!
    bonjour,
    je me demande comment fair un goto avec java....je sais que c'est quelque chose comme sa:
    etiquette:

    //code....

    continue etiquette;
    le probleme est que j'arive pas a declaré mon label....kel est la syntaxe exacte!

  2. #2
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    bonjour,

    pas de goto en java à ma connaissance, c'est pas un langage séquentiel...
    pourquoi avoir besoin d'un goto?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 19
    Par défaut
    Voici un exemple qui devrait répondre amplement à ta question :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class MyClass {
        public void method(int a) {
            for (int i = 0; i < a; i++) {
                if (i == 3) {    // skip number three
                    continue label;
                }
                System.out.println(i);
            }
     
            label:
                System.out.println("Ca y est !");
        }

    ici tu remplaces label par l'identifiant que tu veux, et voilà ! Bien sûr, tu peux sortir de toute forme de boucle (for, while, switch) avec cette syntaxe .

    Il est je crois bien possible de faire un break label; pour sortir complètement de la boucle, mais je ne connais pas la différence exacte avec le continue...

    Au plaisir !

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par moon5 Voir le message
    bonjour,
    je me demande comment fair un goto avec java....je sais que c'est quelque chose comme sa:
    etiquette:

    //code....

    continue etiquette;
    le probleme est que j'arive pas a declaré mon label....kel est la syntaxe exacte!
    Syntaxiquement c'est exactement ça, tu fais etiquette: devant ta boucle...
    Mais c'est à ne pas utiliser !

  5. #5
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 32
    Par défaut
    oui, mais quand je compile il me donne une erreur comme quoi j'ais pas declarer mon label:etiquette!

  6. #6
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par moon5 Voir le message
    oui, mais quand je compile il me donne une erreur comme quoi j'ais pas declarer mon label:etiquette!
    Montre ton code ET le message d'erreur complet...

  7. #7
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 32
    Par défaut
    voila le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     int j;
     int i = 1;
     label:
     j = tabChoi[i];
     
    if (tabGroup[j] != "Désactivé"){
            insert = "traitement";
        //un traitement specifique 
     
    }else{
         i = ++i;
         continue label;
    }
    l'erreur est la suivante:

    Error(413,15): undefined label: label


    je crois comprendre quand utilise le label qu'avec une boucle while , for ou switch, mais pas dans mon cas?

  8. #8
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par moon5 Voir le message
    voila le code:

    int j;
    int i = 1;
    label:
    j = tabChoi[i];

    if (tabGroup[j] != "Désactivé"){
    insert = "traitement";
    //un traitement specifique

    }else{
    i = ++i;
    continue label;
    }


    l'erreur est la suivante:

    Error(413,15): undefined label: label


    je crois comprendre quand utilise le label qu'avec une boucle while , for ou switch, mais pas dans mon cas?
    Oui effectivement dans ton cas, ça n'a pas de sens. D'ailleurs le continue ou break ne s'utilisent (même si ça n'est pas recommandé) que pour des boucles... Le break s'utilise également pr le switch, et là c'est utile...

    Mais dans ton cas il faudrait plutôt revoir ton algo

  9. #9
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Non continue s'utilise dans n'importe quel type de bloc même dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class Test
    {
     public static void main(String args[])
     {
       {
         continue; //branchement
       }
       //ici
     }
    }

Discussions similaires

  1. La syntaxe de goto en Java
    Par sabrinabest dans le forum Langage
    Réponses: 25
    Dernier message: 15/01/2015, 12h04
  2. Portage code VB6 en Java : problème avec les GOTOs
    Par youness78 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 30/10/2009, 14h21
  3. Goto VB6 en Java
    Par youness78 dans le forum Langage
    Réponses: 6
    Dernier message: 23/10/2009, 18h56
  4. utilisation de jump ou de goto dans java
    Par dracula2000 dans le forum Langage
    Réponses: 5
    Dernier message: 06/03/2006, 11h27
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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