Etiqueté break
fonctionne uniquement avec des cycles. Et méfiez-vous, ils ne sont pas équivalent goto
parce qu'ils transfèrent le contrôle à l'instruction suivante après le cycle de rodage ed.
Voici un exemple copié de la language basics tutorial - break statement sur le site d'Oracle (je suis trop paresseux pour être original si d'autres bons exemples sont disponibles):
public static void main(String[] args) {
int[][] arrayOfInts = {
{ 32, 87, 3, 589 },
{ 12, 1076, 2000, 8 },
{ 622, 127, 77, 955 }
};
int searchfor = 12;
int i;
int j = 0;
boolean foundIt = false;
search:
for (i = 0; i < arrayOfInts.length; i++) {
for (j = 0; j < arrayOfInts[i].length;j++) {
if (arrayOfInts[i][j] == searchfor) {
foundIt = true;
break search;
}
}
}
if (foundIt) // etc
}
}
Juste au cas où vous êtes intéressé plus sur la façon pour résoudre la recherche binaire que comment utiliser break
sur les étiquettes. Le code ci-dessous a la même performance que celui qui utiliserait goto (s'ils existent réellement en java).
private static int search(int[] seq, int key, int low, int high) {
while (low <= high) {
// this is as good as low+(high-low)/2.
int mid = (low + high) >>> 1; // this is (low+high)/2
int midVal = seq[mid];
if (midVal < key) {
low = mid + 1;
}
else if (midVal > key) {
high = mid - 1;
}
else {
// why break when you can return?
return mid; // key found
}
}
// key not found. Return the 2's complement of the insert position:
// that is -(insertPosition+1)
return -(low + 1);
}
Veuillez poster le code dans votre question pour les futurs lecteurs, au cas où le lien vers cette image ne fonctionnerait plus. – markspace
Code postal pas d'images. Pour ma part, je préfère ne pas naviguer vers des liens Imgur aléatoires publiés par de nouveaux utilisateurs. –
@BoristheSpider Ok les gars, je l'ai copié. –