Bon dieu pas. Parfois, il ya une possibilité que quelque chose peut se produire dans la boucle qui satisfait à l'exigence globale, sans la satisfaction de la logique condition de boucle. Dans ce cas, break
est utilisé, de vous arrêter à vélo autour d'une boucle inutilement.
Exemple
String item;
for(int x = 0; x < 10; x++)
{
// Linear search.
if(array[x].equals("Item I am looking for"))
{
//you've found the item. Let's stop.
item = array[x];
break;
}
}
Quoi de plus logique dans cet exemple. Continuer la boucle de 10 à chaque fois, même après que vous l'avez trouvé, ou en boucle jusqu'à ce que vous trouver le point et arrêter? Ou pour le dire dans le monde réel des termes, lorsque vous trouver vos clés, gardez-vous à la recherche?
Edit en réponse au commentaire
Pourquoi ne pas mettre en x
de 11
de briser la boucle? Il ne sert à rien. Nous avons break
! À moins que votre code est faire l'hypothèse que l' x
est nettement plus grande que 10
plus tard (et il ne devrait probablement pas être), alors vous êtes bien juste à l'aide de break
.
Edit par souci d'exhaustivité
Il y a certainement d'autres façons de simuler break
. Par exemple, l'ajout de la logique supplémentaire à votre résiliation condition dans la boucle. Dire que c'est soit la boucle inutilement ou de l'utilisation break
n'est pas juste. Comme l'a souligné, une boucle while peut souvent obtenir une fonctionnalité similaire. Par exemple, à la suite de l'exemple ci-dessus..
while(x < 10 && item == null)
{
if(array[x].equals("Item I am looking for"))
{
item = array[x];
}
x++;
}
À l'aide de break
signifie simplement que vous pouvez obtenir cette fonctionnalité avec un for
boucle. Cela signifie également que vous n'avez pas à continuer à ajouter des conditions dans votre cessation d'emploi à la logique, à chaque fois que vous voulez la boucle à se comporter différemment. Par exemple.
for(int x = 0; x < 10; x++)
{
if(array[x].equals("Something that will make me want to cancel"))
{
break;
}
else if(array[x].equals("Something else that will make me want to cancel"))
{
break;
}
else if(array[x].equals("This is what I want"))
{
item = array[x];
}
}
Plutôt qu'un while loop
, avec un raccordement condition qui ressemble à ceci:
while(x < 10 && !array[x].equals("Something that will make me want to cancel") &&
!array[x].equals("Something else that will make me want to cancel"))