254 votes

Est-il une instruction goto en Java?

Je suis confus au sujet de ce. La plupart d'entre nous ont dit qu'il est n'est pas une instruction goto en Java.

Mais j'ai trouvé que c'est l'un des mots clés de Java. Où peut-il être utilisé? Si elle ne peut pas être utilisé, alors pourquoi était-il inclus dans Java comme un mot-clé?

228voto

Vitalii Fedorenko Points 17469

James Gosling à l'origine de la JVM avec le soutien de l' goto des déclarations, mais ensuite, il a supprimé cette fonctionnalité inutile. La raison principale goto est inutile, c'est que généralement il peut être remplacé avec plus lisible états (comme break/continue) ou par l'extraction d'un morceau de code dans une méthode.

Source: James Gosling, Q&A session

196voto

Thomas Points 63635

La Java la liste des mots clé spécifie l' goto mot-clé, mais il est marqué comme "non utilisé".

Cela a probablement été fait dans le cas où il venait à être ajouté à une version ultérieure de Java.

Si goto n'étaient pas sur la liste, et il ont été ajoutés à la langue, un code existant qui a utilisé le mot goto comme un identificateur (nom de la variable nom de la méthode, etc.) allait se briser. Mais parce qu' goto est un mot-clé, ce code ne sera même pas compiler dans le présent, et il reste possible de le faire réellement faire quelque chose plus tard, sans casser le code existant.

145voto

applechewer Points 1881

Le mot-clé existe, mais il n'est pas mis en œuvre.

La seule bonne raison d'utiliser goto que je peux penser, c'est ceci:

for (int i = 0; i < MAX_I; i++) {
    for (int j = 0; j < MAX_J; j++) {
        // do stuff
        goto outsideloops; // to break out of both loops
    }
}
outsideloops:

En Java, vous pouvez le faire comme ceci:

loops:
for (int i = 0; i < MAX_I; i++) {
    for (int j = 0; j < MAX_J; j++) {
        // do stuff
        break loops;
    }
}

43voto

Isaac E Points 711

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html

"Les mots clés const et goto sont réservés, même si elles ne sont pas actuellement utilisé. "

19voto

Heinzi Points 66519

Ils sont réservés pour une utilisation future (voir: les mots clés du Langage Java)

Les mots clés const et goto sont réservés, même s'ils ne sont pas utilisés actuellement.

La raison pourquoi il n'y a pas d'instruction goto en Java peut être trouvé dans "Le Langage Java Environnement":

Java n'a pas d'instruction goto. Études montre que goto (sig)utilisé plus souvent que de ne pas simplement "parce qu'il est là". L'élimination de goto conduit à une simplification de la langue-il n'y a pas de règles sur les effets d'un goto dans le milieu d'une instruction for, par exemple. Les études sur environ 100 000 lignes de code C a déterminé que près de 90 pour cent des instructions goto ont été utilisées uniquement pour obtenir l'effet de l'éclatement de boucles imbriquées. Comme mentionné ci-dessus, multi-niveau de break et continue d'enlever la plupart de la nécessité de goto.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X