English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans cet article, vous apprendrez à utiliser la directive break pour transférer le contrôle du programme.
Lorsque vous utilisez des boucles ou des instructions conditionnelles, il peut être nécessaire de sauter certaines instructions à l'intérieur de la boucle ou de terminer immédiatement la boucle sans vérifier l'expression de test
Dans ce cas, les directives break et continue seront utilisées. Vous en apprendrez davantage au chapitre suivant Directive continue.
La directive break arrête l'exécution du boucle ou de l'instruction switch. Ensuite, il saute à la prochaine instruction après la boucle ou l'instruction switch.
La syntaxe de la directive break est :
break
pour i dans 1...5 { if i == 4 { break } print("i = \(i)") } print("The end")
Lors de l'exécution de ce programme, la sortie est :
i = 1 i = 2 i = 3 The end
The end1Dans le programme ci-dessus, la gamme de séquence à itérer est5.
à1La valeur de i est définie sur la gamme (
) le premier nombre, et est mis à jour pour le prochain nombre de la gamme à chaque itération.4La boucle contient également une instruction if, l'expression est i==4Lorsque l'expression est calculée comme true (au cours de l'itération-l'itération suivante. Lorsque l'instruction break est exécutée au cours de l'itération (
Puis, il saute à l'extérieur de la boucle pour imprimer The End.
var currentLevel: Int = 1, finalLevel: Int = 2 var isLifeAvailable = true while (isLifeAvailable) { if currentLevel > finalLevel { print("Le jeu est terminé, il n'y a plus de niveaux") break } //Jouer, passer au niveau suivant currentLevel += 1 print("Niveau suivant") } print("Hors de la boucle while")
Lors de l'exécution de ce programme, la sortie est :
Niveau suivant Niveau suivant Le jeu est terminé, il n'y a plus de niveaux Hors de la boucle while
Dans le programme ci-dessus, l'expression de test de la boucle while est toujours true.
Lorsque currentLevel est supérieur à finalLevel, l'instruction break dans le bloc if est exécutée. Ensuite, le programme quitte (termine) la boucle while et exécute les instructions après la boucle, c'est-à-dire print("Hors de la boucle while")..
pour j dans 1...2 { pour i dans 1...5 { if i == 4 { break } print("i = \(i)") } print("j = \(j)") }
Lors de l'exécution de ce programme, la sortie est :
i = 1 i = 2 i = 3 j === 1 i = 1 i = 2 i = 3 j === 2
Dans le programme ci-dessus, si i === 4 L'instruction break à l'intérieur ne termine que pour i dans 1...5 l'exécution de la boucle interne. Cependant, il continue d'exécuter la boucle externe pour j dans 1...2 .
Mais, si vous souhaitez également break l'extérieur pour j dans 1...2Alors ? Pour cela, nous utilisons des instructions étiquetées en Swift.
Les instructions de forme (label: Statement) sont appelées instructions étiquetées. Une étiquette est un identificateur que vous pouvez mentionner plus tard dans des instructions break ou continue.
Ici, label est un identificateur. Lorsque l'instruction break est exécutée, elle arrête le boucle interne label et le programme saute immédiatement à l'instruction suivant l'instruction portant l'étiquette.
outerloop: pour j dans 1...2{ innerloop: pour i dans 1...5 { if i == 4 { break outerloop } print("i = \(i)") } print("j = \(j)") }
Lors de l'exécution de ce programme, la sortie est :
i = 1 i = 2 i = 3
Dans le programme ci-dessus, il y a deux instructions marquées outerloop: for j in 1...2 et innerloop: for i in 1...5.
Les noms de balise outerloop et innerloop peuvent être utilisés avec l'instruction break.
Cette instruction break outerloop arrête deux boucles et termine le programme.
Si vous êtes familier avec d'autres langages de programmation, par exemple C, C ++,Java, etc., utilisez l'instruction break pour terminer l'instruction switch. Mais dans Swift, l'instruction switch se termine immédiatement après l'exécution du premier cas correspondant. Par conséquent, l'ajout de break dans les cas switch Swift est optionnel. Pour plus d'informations, visitezInstruction switch Swift.