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 :

Goto VB6 en Java


Sujet :

Langage Java

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 146
    Par défaut Goto VB6 en Java
    Bonjour,

    je suis sur un projet de portage d'une application vb6 en Java. Je n'arrive pas à implémenter un Goto :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    If ... Then
        ...
        Goto X
    End If
     
    .
    .
    .
    X:
    Est-ce que quelqu'un sait comment implémenter cette syntaxe en java ?

    Merci et désolé 1000 fois si la question a déjà été traitée (et également si je ne suis pas sur le bon thread)

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    Goto n'existe pas en java. Il faudra que tu trouve un moyen de t'en passer.

    Dans ton cas tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    boolean jumpToX=false;
    if (...) {
        ...
        jumpToX=true; //Goto X
    }
    if (!jumpToX){ 
    .
    .
    .
    }
    //X:

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 156
    Par défaut
    Les instructions break, et continue vont également t'être utile. D'autre part on peut mettre des labels sur celle-ci, ceci permettra par exemple sortir d'une double boucle, ou de sauter une étape de la boucle externe.

  4. #4
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Pour ce qui est le portage, il serait mieux que tu implementes l'algo au lieu de faire la 'traduction'

    Par exemple dans ton cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    If ... Then
        ...
        Goto X
    End If
    // Traitement si condition n'est pas verifiee 
    .
    .
    .
    X:
    // Traitement si condition est verifiee
    
    
    On peut voir comme ca (en pseudo algo)

    If condition Then
    Traitement condition verifiee (Label X)
    Else
    Traitement si condition n'est pas verifiee

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Par défaut
    Personnellement, je te recommanderai de spliter ton code en plusieurs fonctions.

    Ainsi, au lieu d'avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    If ... Then
        ...
        Goto X
    End If
    .
    .
    .
    X:
    Tu pourrais faire quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void fonction1() {
        If ... Then
            ...
            fonction2()
        End If
        .
        .
        .
        fonction2();
    }
    public void fonction2() {
        ...
    }

  6. #6
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    "goto" et d'autres instructions telles que "break label" sont très anciennes, et vraiment pas conseillées en java. Trop (mal) utilisées, elles sont une vraie plaie à débugger.....

    perso, en plus de 5 ans de programmation java soutenue, je n'ai jamais trouvé de cas où l'on soit obligé d'utiliser une de ces vieilles construction archaïque...

    Il faut apprendre à s'en passer, les programmeurs amenés à maintenir le code en seront vraiment reconnaissants

  7. #7
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    Citation Envoyé par Pill_S
    "goto" et d'autres instructions telles que "break label" sont très anciennes, et vraiment pas conseillées en java. Trop (mal) utilisées, elles sont une vraie plaie à débugger.....
    Le goto n'a jamais été implémenté en Java (même s'il s'agit d'un mot réservé) donc il ne marchera pas du tout.

    Par contre, même s'il n'est clairement pas adapté au problème présenté dans ce sujet, le break label, n'a rien de vieux. Il marche parfaitement et s'il est utilisé pour son usage normal : sortir d'une série imbriquée de blocs, je dirai au contraire qu'il peut être très utile.
    On peut certes toujours s'en passer en utilisant des méthodes plus ou moins propres, mais je ne vois pas pourquoi ne pas l'utiliser quand il permet d'avoir un code bien plus clair.
    Il est vrai cependant que l'on en a pas besoin tous les jours.

Discussions similaires

  1. [VB6] Reseau LAN: Server VB6, Client Java.
    Par remya dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 27/12/2010, 22h22
  2. portage application VB6 en Java
    Par youness78 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/11/2009, 09h57
  3. 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
  4. [vb6]On Error goto 0
    Par riesseg dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 20/04/2006, 20h04
  5. utilisation de jump ou de goto dans java
    Par dracula2000 dans le forum Langage
    Réponses: 5
    Dernier message: 06/03/2006, 11h27

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