Disons que j'ai ceci:
while(a){
while(b){
if(b == 10)
break;
}
}
Question: La déclaration de rupture me fera-t-elle sortir des deux boucles ou seulement de celle intérieure? Je vous remercie.
Dans votre exemple, l'instruction break vous fera sortir de la boucle while (b)
while(a) {
while(b) {
if(b == 10) {
break;
}
}
// break will take you here.
}
Il ne cassera que la boucle while la plus immédiate. En utilisant une étiquette, vous pouvez sortir des deux boucles: jetez un oeil à cet exemple tiré de ici
public class Test {
public static void main(String[] args) {
outerloop:
for (int i=0; i < 5; i++) {
for (int j=0; j < 5; j++) {
if (i * j > 6) {
System.out.println("Breaking");
break outerloop;
}
System.out.println(i + " " + j);
}
}
System.out.println("Done");
}
}
uniquement à partir de la partie interne, utilisez le libellé break si vous souhaitez relier une boucle spécifique
label1:
for(){
label2:
for(){
if(condition1)
break label1;//break outerloop
if(condition2)
break label2;//break innerloop
}
}
Regarde aussi
while(a){
while(b){
if(b == 10)
break;
}
}
Dans le code ci-dessus, vous rompez la boucle inner most où (c.-à-d. immediate loop
) où break
est utilisé.
Vous pouvez rompre les deux boucles à la fois en utilisant break
avec label
label1:
while(a){
while(b){
break label1;
}
}
@Abhishekkumar
Le mot-clé Break a sa racine dérivée de C et Assembly, et Break a pour seul objectif de passer le contrôle de l'instruction composée, à savoir Boucle, Condition, Méthode ou Procédures.
S'il vous plaît se référer ces ...
http://tigcc.ticalc.org/doc/keywords.html#break
http://www.functionx.com/cpp/keywords/break.htm
http://en.wikipedia.org/wiki/Break_statement#Early_exit_from_loops
Donc, si vous voulez sortir de deux boucles en même temps, vous devez utiliser deux sauts, à savoir un dans la boucle intérieure et un dans la boucle extérieure.
Mais vous voulez arrêter les deux boucles en même temps, alors vous devez utiliser exit ou return.
Il va sortir de la boucle qui le ferme immédiatement.
Vous pouvez cependant casser une étiquette:
myLabel:
while(a) {
while(b) {
if(b == 10)
break myLabel;
}
}
Je n'aime généralement pas utiliser ce modèle, car il conduit facilement au code spaghetti. Utilisez une pause sans étiquette ou un drapeau pour terminer votre boucle.
Une instruction break
vous fera sortir de la boucle la plus interne qui entoure cette instruction break
.
Dans l'exemple, la boucle while interne.
L’instruction break Java ne veut pas vous sort de plusieurs boucles imbriquées.
Comme remarque curieuse, dans PHP, l'instruction break accepte un paramètre numérique indiquant le nombre de boucles externes que vous souhaitez interrompre, comme ceci:
$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo "At 5<br />\n";
break 1; /* Exit only the switch. */
case 10:
echo "At 10; quitting<br />\n";
break 2; /* Exit the switch and the while. */
default:
break;
}
}