Bloc de controle en Java
Fermé
anaurel
Messages postés
38
Date d'inscription
vendredi 26 mai 2017
Statut
Membre
Dernière intervention
12 janvier 2018
-
19 juin 2017 à 13:29
anaurel Messages postés 38 Date d'inscription vendredi 26 mai 2017 Statut Membre Dernière intervention 12 janvier 2018 - 19 juin 2017 à 15:40
anaurel Messages postés 38 Date d'inscription vendredi 26 mai 2017 Statut Membre Dernière intervention 12 janvier 2018 - 19 juin 2017 à 15:40
A voir également:
- Bloc de controle en Java
- Waptrick java football - Télécharger - Jeux vidéo
- Controle parental pc - Guide
- Java apk - Télécharger - Langages
- Jeux java itel football - Télécharger - Jeux vidéo
- Télécharger fausse vignette contrôle technique ✓ - Forum Imprimante
2 réponses
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
19 juin 2017 à 13:39
19 juin 2017 à 13:39
Bonjour,
Les goto historiques sont incompatibles avec la programmation procédurale (appels de méthodes) et encore plus avec la programmation objet.
Il existe cependant un mécanisme de label en Java qui permet de faire des break/continue plus avancés, mais c'est la seule chose que l'on puisse faire en Java qui se rapproche vaguement à un goto.
Exemple :
Les goto historiques sont incompatibles avec la programmation procédurale (appels de méthodes) et encore plus avec la programmation objet.
Il existe cependant un mécanisme de label en Java qui permet de faire des break/continue plus avancés, mais c'est la seule chose que l'on puisse faire en Java qui se rapproche vaguement à un goto.
Exemple :
toto: for (int[] array : matrix) { for (int id : array) { if (id < 0) { break toto; } } }
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
Modifié le 19 juin 2017 à 14:06
Modifié le 19 juin 2017 à 14:06
Pour aller plus loin :
Au delà du langage de programmation Java, il y a la machine virtuelle qui interprète le bytecode (qu'il soit issu d'un code Java ou d'un autre langage compatible) et dans les instructions utilisables par la JVM il y a le goto.
https://en.wikipedia.org/wiki/Java_bytecode_instruction_listings
C'est une instruction assez courante dans les bytecode que l'on obtient après la compilation d'un code source Java.
Exemple : voici la méthode equals() de la classe Object en Java.
Une fois compilé voici le bytecode obtenu, avec
Au delà du langage de programmation Java, il y a la machine virtuelle qui interprète le bytecode (qu'il soit issu d'un code Java ou d'un autre langage compatible) et dans les instructions utilisables par la JVM il y a le goto.
https://en.wikipedia.org/wiki/Java_bytecode_instruction_listings
C'est une instruction assez courante dans les bytecode que l'on obtient après la compilation d'un code source Java.
Exemple : voici la méthode equals() de la classe Object en Java.
public boolean equals(Object obj) { return (this == obj); }
Une fois compilé voici le bytecode obtenu, avec
goto 10sur l'instruction 6 (ce qui permet d'éviter la section "else" du if).
// Method descriptor #12 (Ljava/lang/Object;)Z // Stack: 2, Locals: 2 public boolean equals(java.lang.Object arg0); 0 aload_0 [this] 1 aload_1 [arg0] 2 if_acmpne 9 5 iconst_1 6 goto 10 9 iconst_0 10 ireturn Stack map table: number of frames 2 [pc: 9, same] [pc: 10, same_locals_1_stack_item, stack: {int}]
19 juin 2017 à 14:41
19 juin 2017 à 14:43
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html
19 juin 2017 à 15:40