À l'aide de l'étiquette et de rupture de if-else
J'ai ce code qui génère un nombre aléatoire à partir d'un tableau, à une condition particulière (lorsque x et y deux éléments sont égaux à zéro). Je veux le contrôle pour accéder à l'étiquette. Mais le contrôle ne saute jamais de l'étiquette dans n'importe quelle condition. Je voulais savoir si je fais bien ou pas?
int[] arr = {0, 1, 2};
Random rn = new Random();
label: {
//some code
if (x != 0 && y !=0) {
//some code
} else {
break label;
}
}
- Merci frère pour l'édition, mais le code est en fait pour android, pour garder les choses simples, j'ai enlevé le code et ajouter des commentaires dans ces lieux.
- N'avez-vous pas besoin
||
au lieu de&&
dans votreif
? I. e.if (x != 0 || y != 0)
?
Vous devez vous connecter pour publier un commentaire.
Essayez d'Évitez d'utiliser des étiquettes. Ce que vous pourriez faire, c'est:x
ety
déjà égaux0
avant d'entrer dans la boucle?Sans examiner si vous devez, oui, vous pouvez utiliser marqué états avec
if
en Java. Selon le 1.7 spécificationIl va sur (italiques ajoutés)
Donc, si vous
break
unif
bloc (souvenez-vous d'un bloc est une déclaration), vous pouvez quitter leif
corps. Nous allons tester:De sortie:
La
break
déclaration des pauses boucles et de ne pas transférer le contrôle à l'étiquette.À l'aide d'une étiquette avec
break
est pour quand vous avez de boucles internes et externes. Un sans étiquettebreak
rompt l'intérieure de la boucle (celle dans laquelle vous êtes), alors qu'un étiquetésbreak
vous permet de spécifier une boucle externe.Voir: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html
Spécifiquement la BreakWithLabelDemo
break
est utilisé avec des boucles, mais cela ne veut pas dire qu'il doit être utilisé avec des boucles explicitement. Je ne sais pas pourquoi toutes les réponses semblent penser que. Vous pouvez utiliser unbreak
dans une instruction if, se référer à ma réponse.Je vous suggère d'utiliser une fonction récursive.
Vous ne pouvez pas utiliser
break
sans bouclesYou cannot use break without loops
~ Pas tout à fait exacte. Vous pouvez utiliser la pause avec unswitch
déclaration.Autant que je sache, les étiquettes ne peuvent pas être utilisés de façon arbitraire autour de
{}
, ce que vous devez faire pour marquer un for, while ou do-while