De l'art d'utiliser le break

De l'art d'utiliser le break - Java - Programmation

Marsh Posté le 25-10-2002 à 14:27:38    

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) ?

Reply

Marsh Posté le 25-10-2002 à 14:27:38   

Reply

Marsh Posté le 25-10-2002 à 14:28:34    

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
Reply

Marsh Posté le 25-10-2002 à 14:28:36    

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

Reply

Marsh Posté le 25-10-2002 à 14:29:17    

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
Reply

Marsh Posté le 25-10-2002 à 14:30:52    

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 ?

Reply

Marsh Posté le 25-10-2002 à 14:32:21    

_Mac_ a écrit a écrit :

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




 
goto bed  :D

Reply

Marsh Posté le 25-10-2002 à 14:35:54    

_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
Reply

Marsh Posté le 25-10-2002 à 14:36:02    

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

Reply

Marsh Posté le 25-10-2002 à 14:42:16    

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 ?

Reply

Marsh Posté le 25-10-2002 à 14:48:12    

_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
Reply

Marsh Posté le 25-10-2002 à 14:48:12   

Reply

Marsh Posté le 25-10-2002 à 16:18:11    

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

Reply

Marsh Posté le 25-10-2002 à 16:32:48    

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
Reply

Marsh Posté le 25-10-2002 à 16:38:50    

c'est quoi les étiquettes ?


---------------
oui oui
Reply

Marsh Posté le 25-10-2002 à 16:39:22    

DarkLord a écrit a écrit :

 
 
 :sarcastic:  




vu ! [:nikoluc]

Reply

Marsh Posté le 25-10-2002 à 16:42:01    

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

Reply

Marsh Posté le 25-10-2002 à 16:56:49    

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
Reply

Marsh Posté le 25-10-2002 à 17:26:21    

Biface >>> :jap:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 25-10-2002 à 21:48:43    

_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

Reply

Marsh Posté le 25-10-2002 à 22:33:44    

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
Reply

Marsh Posté le 25-10-2002 à 23:20:18    

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]  

Reply

Marsh Posté le 25-10-2002 à 23:22:33    

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.

Reply

Marsh Posté le 26-10-2002 à 00:45:00    

>benou  
 
 :jap:


---------------
oui oui
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed