Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2001 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  De l'art d'utiliser le break

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

De l'art d'utiliser le break

n°234485
_Mac_
Posté le 25-10-2002 à 14:27:38  profilanswer
 

Petite question de comptoire tranquille de vendredi après-midi :
 
Peut-on, ou est-ce propre, d'utiliser l'instruction break dans une boucle (for ou while) ?

mood
Publicité
Posté le 25-10-2002 à 14:27:38  profilanswer
 

n°234487
darklord
You're welcome
Posté le 25-10-2002 à 14:28:34  profilanswer
 

bien sur :)
 
ce qui est bad c'est le goto sauf dans un seul cas


---------------
Just because you feel good does not make you right
n°234489
HappyHarry
Posté le 25-10-2002 à 14:28:36  profilanswer
 

on peut, propre pas trop trop, mais quand on a pas le choix ... ca permet parfois de limiter grandement le nombre d'itérations

n°234490
darklord
You're welcome
Posté le 25-10-2002 à 14:29:17  profilanswer
 

HappyHarry a écrit a écrit :

on peut, propre pas trop trop, mais quand on a pas le choix ... ca permet parfois de limiter grandement le nombre d'itérations




 
qd j'ai dis bien sur c'est avec un certain bon sens bien sur :)


---------------
Just because you feel good does not make you right
n°234491
_Mac_
Posté le 25-10-2002 à 14:30:52  profilanswer
 

DarkLord a écrit a écrit :

bien sur :)
 
ce qui est bad c'est le goto sauf dans un seul cas




 
Alors, la question que tu attends : dans quel cas ?

n°234493
HappyHarry
Posté le 25-10-2002 à 14:32:21  profilanswer
 

_Mac_ a écrit a écrit :

 
 
Alors, la question que tu attends : dans quel cas ?




 
goto bed  :D

n°234499
darklord
You're welcome
Posté le 25-10-2002 à 14:35:54  profilanswer
 

_Mac_ a écrit a écrit :

 
 
Alors, la question que tu attends : dans quel cas ?




 
lorsque tu as deux boucles imbriquées et que tu veux sortir des deux boucles avec une seule instruction.


---------------
Just because you feel good does not make you right
n°234501
_Mac_
Posté le 25-10-2002 à 14:36:02  profilanswer
 

HappyHarry a écrit a écrit :

on peut, propre pas trop trop, mais quand on a pas le choix ... ca permet parfois de limiter grandement le nombre d'itérations




 
Le break est effectivement bien utilisé dans ce cas :p

n°234515
_Mac_
Posté le 25-10-2002 à 14:42:16  profilanswer
 

DarkLord a écrit a écrit :

 
 
lorsque tu as deux boucles imbriquées et que tu veux sortir des deux boucles avec une seule instruction.




 
Effectivement... T'aurais pas intérêt quand même à utiliser un booléen pour signaler à la première boucle que tu as fait un break dans la deuxième et éventuellement refaire un break ?

n°234532
darklord
You're welcome
Posté le 25-10-2002 à 14:48:12  profilanswer
 

_Mac_ a écrit a écrit :

 
 
Effectivement... T'aurais pas intérêt quand même à utiliser un booléen pour signaler à la première boucle que tu as fait un break dans la deuxième et éventuellement refaire un break ?




 
ca fait un test de plus à chaque itération -> l'utilité du goto dans ce cas (au niveau perf)


---------------
Just because you feel good does not make you right
mood
Publicité
Posté le 25-10-2002 à 14:48:12  profilanswer
 

n°234612
bobuse
Posté le 25-10-2002 à 16:18:11  profilanswer
 

DarkLord a écrit a écrit :

 
 
lorsque tu as deux boucles imbriquées et que tu veux sortir des deux boucles avec une seule instruction.



:ouch:  :ouch:  
 
et les étiquettes ça sert à quoi alors !!!!!
 
 :non:  :non: po bien ça ! Il faut erradiquer le goto :D

n°234616
darklord
You're welcome
Posté le 25-10-2002 à 16:32:48  profilanswer
 

bobuse a écrit a écrit :

 :ouch:  :ouch:  
 
et les étiquettes ça sert à quoi alors !!!!!
 
 :non:  :non: po bien ça ! Il faut erradiquer le goto :D  




 
 :sarcastic:


---------------
Just because you feel good does not make you right
n°234622
art_dupond
je suis neuneu... oui oui !!
Posté le 25-10-2002 à 16:38:50  profilanswer
 

c'est quoi les étiquettes ?


---------------
oui oui
n°234623
bobuse
Posté le 25-10-2002 à 16:39:22  profilanswer
 

DarkLord a écrit a écrit :

 
 
 :sarcastic:  




vu ! [:nikoluc]

n°234625
_Mac_
Posté le 25-10-2002 à 16:42:01  profilanswer
 

DarkLord a écrit a écrit :

bien sur :)
 
ce qui est bad c'est le goto sauf dans un seul cas




 

Citation :

Unlike C and C++, the Java programming language has no goto statement;


 
 :o

n°234634
BifaceMcLe​OD
The HighGlandeur
Posté le 25-10-2002 à 16:56:49  profilanswer
 

Sauf que "goto" est quand même un mot réservé en Java...
 
Le break peut être utile aussi dans des boucles où la condition d'arrêt est au milieu de la boucle :

loop
    ...
    exit when (condition-is-true);
    ...
end loop;


Vous allez me dire, ça se simule très bien, soit en dupliquant le code (beurk ! trappe à bugs, pourtant utilisée dans 80 % des cas), soit avec un joli booléen dans un while. Mais à mon avis, la solution de la boucle infinie rend le code moins complexe.
 
En C/C++, ça se lit très bien si on utilise les macros :

Code :
  1. #define forever()        for(;;)
  2. #define EXIT_WHEN(cond)  if (cond) break


Ce qui donne :

Code :
  1. forever() {
  2.   ...
  3.   EXIT_WHEN(condition-is-true);
  4.   ...
  5. }


 
En Java, l'absence de macros oblige à utiliser explicitement le "break".


Message édité par BifaceMcLeOD le 25-10-2002 à 16:58:10
n°234656
darklord
You're welcome
Posté le 25-10-2002 à 17:26:21  profilanswer
 

Biface >>> :jap:


---------------
Just because you feel good does not make you right
n°234748
Gonzoide
Les cochons... dans l'espâââce
Posté le 25-10-2002 à 21:48:43  profilanswer
 

_Mac_ a écrit a écrit :

Petite question de comptoire tranquille de vendredi après-midi :
 
Peut-on, ou est-ce propre, d'utiliser l'instruction break dans une boucle (for ou while) ?




Le break aussi c'est bien aussi pour eviter des "return" multiples, ou en milieu d'iteration:
 
result = null
 
boucle {
   if (condition) {
      result = valeur_courante
      break
   }
}
 
return result

n°234762
benou
Posté le 25-10-2002 à 22:33:44  profilanswer
 

art_dupond a écrit a écrit :

c'est quoi les étiquettes ?  




exemple on cherche les coordonnées de la valeur 1 dans une matrice représentée par un tableau à 2 dimenssions :
 

Code :
  1. int[][] matrice = ...;
  2.    int valeurRecherchee = 1;
  3.    int i=0;
  4.    int j=0
  5.    parcoursDesLignes:
  6.    for (i=0; i < matrice.length; i++) {
  7.       parcoursDesColonnes:
  8.       for (j=0; j < matrice[i].lenght; j++) {
  9.          if (matrice[i][j] == valeurRecherchee) {
  10.             break parcoursDesLignes;
  11.          }
  12.       }
  13.    }
  14.    System.out.println("" + valeurRecherchee + " (" + i + "," + j + " )" );


Message édité par benou le 25-10-2002 à 22:37:30
n°234775
benou
Posté le 25-10-2002 à 23:20:18  profilanswer
 

j'en reviens pas : j'ai fais un recherche sur java et le goto sur le site de java de sun et je tombe sur ca :  
 
http://developer.java.sun.com/deve [...] t0613.html
 
et :ouch: y a exactement l'exemple que j'ai donné  
 :eek2:  
y a même le coup de la variable target et tout.
 
je l'avais inventé sur le moment pourtant !  [:wam]  

n°234776
benou
Posté le 25-10-2002 à 23:22:33  profilanswer
 

je vois pas pkoi vous vous prenez la tête avec le goto. en java y a pas de goto. point.
 

Citation :

In the JavaTM programming language, goto is a reserved word; the Java programming language does not have a goto statement. However there are alternative statements that you can use in the Java programming language in place of the goto statement.  


 
c'est juste un mot reservé mais y a rien derrière.

n°234818
art_dupond
je suis neuneu... oui oui !!
Posté le 26-10-2002 à 00:45:00  profilanswer
 

>benou  
 
 :jap:


---------------
oui oui
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  De l'art d'utiliser le break

 

Sujets relatifs
[VB.NET] SVP, Comment utiliser le fichier app.config?Quel logiciel utiliser pour faire du Turbo pascal sous XP ?
ce qu'il faut utiliser pour faire du flash?comment utiliser getcwd() ? en c, sous linux (shell)
[newby inside] installer et utiliser dbd::oracle[VC++] qui a deja utiliser visual c+ de microsft
[C] Utiliser plus que 16 couleur avec la lib BGIRécupérer des données sur des sites Internet et les utiliser ???
question conne : utiliser login/pass saisis dans une urlun site sur les macros avec vba ??? pour utiliser sous word
Plus de sujets relatifs à : De l'art d'utiliser le break


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR