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 :

Pour quelle raison java n'utilise pas l'instruction goto ?


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 131
    Par défaut Pour quelle raison java n'utilise pas l'instruction goto ?
    salut tout le monde;
    enfaîte ma question est dans l'intitulé du sujet, donc SVP quelqu'un pouvez me dire pour quelle raison cette instruction a disparu du java, pourtant elle serve à achever un traitement selon une condition et reprend un autre (un branchement) .et est ce qui il y a un équivalant a part le break et continue dans les boucles avec une utilisation bien précis pour ces deux dernières .
    Merci d'avance pour l'information

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Parce que le goto peut poser beaucoup de problème s'il est mal utilisé... ce qui peut vite arrivé.
    Il en est devenu inutile car on peut le remplacer par les structures conditionnelles du langage (if/while/for).
    Ce qui généralement permet un code plus lisible et structuré (et probablement plus simple à optimiser pour le compilo/JVM).


    Même dans les langages qui le supporte, il est généralement déconseillé de l'utiliser...


    a++

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 131
    Par défaut
    ok càd tout dépend l'exécution du programme en plus avec la notion de temps partagé pour l'exécution des parties d'un programme et le chargement des instructions dans la cache et les mots dans les registres à utiliser par les processeurs actuelles (pipeline) peut engendrer de mauvaise traitements, ce qui rend la gestion des branchements difficiles n'est ce pas ?

  4. #4
    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
    Non non, ce ne sont pas les machines qui font n'importe quoi avec goto. En interne, une fois que le langage est compilé, tout fonctionne à base de goto et ça marche très bien.

    Ce sont les programmeurs qui font n'importe quoi quand goto existe dans leur langage, raison pour laquelle cela n'existe plus dans les langages modernes. Et puis cela empêche aussi de faire certaines vérifications et optimisations par le compilateur.

    Java était un peu un des premiers, parmi les langages qui ont fait ça et qui sont toujours utilisés depuis. Mais le seul fait que plus personne ne crée de langage avec goto est un indicateur.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 131
    Par défaut
    Merci beaucoup Mr thelvin
    votre point de vue parait logique

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 899
    Billets dans le blog
    54
    Par défaut
    Alors :
    1. goto existait dans Oak le prédécesseur de Java.
    2. goto est mot-clé réservé mais non utilisé dans Java (donc le programmeur ne peut pas l'utiliser lui-même).
    3. The Java Language Environment de James Gosling et Henry McGilton et hébergé sur le site de Bjarne Stroustrup ( What ????!!!!) dit :

      2.2.5 No More Goto Statements
      Java has no goto statement*. Studies illustrated that goto is (mis)used more often than not simply “because it’s there”. Eliminating goto led to a simplification of the language—there are no rules about the effects of a goto into the middle of a for statement, for example. Studies on approximately 100,000 lines of C code determined that roughly 90 percent of the goto statements were used purely to obtain the effect of breaking out of nested loops. As mentioned above, multi-level break and continue remove most of the need for goto statements

      -------
      * However, goto is still a reserved word.
    4. Jasmes Gosling a donné son avis sur la question :



      The main reason goto is unnecessary is that usually it can be replaced with more readable statements (like break/continue) or by extracting a piece of code into a method.


    *De même que l'article de Dijkstra** (qui date de 1968 !) et l'avis de Knuth a ce sujet.
    **Le titre de la lettre a été modifiée par l’éditeur lors de la publication.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  7. #7
    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 : 45
    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
    Après toutes mes années d'expérience, je trouve franchement dommage que java n'inclue pas le goto. Dans des domaines assez particuliers, comme celui où je vis tous les jours, une minorité de gens peux se sentir insulté, relégué à moins que rien par cette limitation du language. Je me sens mal à l'aise de devoir leur dire que ce qu'ils veulent faire va être très compliqué en java et que ce serait franchement plus facile en C avec un goto. Je suis dans une région à forte immigration italienne et vous n'imaginez pas à quel point c'est compliqué de faire du code spaghetti sans goto!

    Heureusement, avec j2EE c'est facile de faire des lasagnes

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/06/2012, 18h09
  2. Réponses: 9
    Dernier message: 12/10/2011, 14h27
  3. [Conception Général] Pour quelles raisons un fichier CSS ne se charge pas ?
    Par Faiche dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 10/09/2008, 14h06
  4. message kernel_panic, pour quelles raisons ?
    Par copro dans le forum Debian
    Réponses: 6
    Dernier message: 10/07/2008, 21h33
  5. Allez vous acheter Leopard, et pour quelles raisons ?
    Par Mathusalem dans le forum Apple
    Réponses: 9
    Dernier message: 29/10/2007, 12h51

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