English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este artículo, aprenderá a usar la instrucción continue para transferir el control del programa.
Al usar bucles o declaraciones condicionales, es posible que necesite saltar algunas instrucciones dentro del bucle o terminar el bucle inmediatamente sin verificar la expresión de prueba.
En este caso, se utilizarán las instrucciones break y continue. Visite esta página para obtener información sobreLa instrucción break deMás información.
La instrucción continue detiene la ejecución del bucle o de las instrucciones dentro de una declaración switch. Luego, vuelve a evaluar la expresión de prueba del bucle.
La sintaxis de la instrucción continue es:
continue
for i in 1...5 { if i == 4 { continue } print("i = \(i)") }
Al ejecutar este programa, la salida será:
i = 1 i = 2 i = 3 i = 5
En el programa anterior, el rango de la secuencia que se itera es1hasta5.
El valor de i se establece en range(1) el primer número, y se actualiza a la siguiente cifra del rango en cada iteración.
El ciclo también contiene la expresión i = = 4de la declaración if. Cuando el valor de la expresión es true (en el4en la iteración) ejecutar la sentencia continue, saltando la ejecución de la sentencia print("i = \(i)") y dirigiéndose a la próxima iteración (i = 5)。
var intialLevel:Int = -5, finalLevel:Int = 2 var currentLevel:Int = intialLevel while currentLevel < finalLevel { if intialLevel < 0 { print("El nivel inicial debe ser un número positivo") intialLevel = 0 currentLevel = intialLevel continue //Salta la ejecución actual } currentLevel += 1 print("nivel siguiente") } print("Fuera del ciclo while")
Al ejecutar este programa, la salida será:
El nivel inicial debe ser un número positivo nivel siguiente nivel siguiente Fuera del ciclo while
En el programa anterior, el ciclo while se ejecuta hasta que currentLevel sea menor que finalLevel. Dado que el valor asignado a intialLevel es-5y es menor que 0, por lo que se ejecuta la sentencia interna if.
Cuando el programa llega a la sentencia continue, salta las sentencias del ciclo while y luego vuelve a verificar la condición currentLevel<finalLevel.
for j in 1...2 { for i in 1...5 { if i == 4 { continue } print("i = \(i)") } print("j = \(j)") }
Al ejecutar este programa, la salida será:
i = 1 i = 2 i = 3 i = 5 j = 1 i = 1 i = 2 i = 3 i = 5
En el programa anterior, if i==4La sentencia continue solo salta la ejecución de la sentencia print("i=\(i)") dentro del ciclo for interno. Sin embargo, no salta la declaración for i in 1...5 Ejecución del ciclo externo.
Pero, ¿qué hacer si también desea continuar en el ciclo externo? Para esto, debe usar declaraciones con etiqueta en Swift.
Las declaraciones con prefijo en forma de (label: Statement) se denominan declaraciones con etiqueta. La etiqueta es un identificador que puede referirse más tarde en declaraciones break o continue.
Aquí, label es un identificador. Cuando se ejecuta la sentencia continue, el programa salta el resto del ciclo for de coe y se dirige a la sentencia que comienza con label.
outerloop: for j in 1...2 { innerloop: for i in 1...5 { if i == 4 { continue outerloop } print("i = \(i)") } print("j = \(j)") }
Al ejecutar este programa, la salida será:
i = 1 i = 2 i = 3 i = 1 i = 2 i = 3
En el programa anterior, hay dos instrucciones etiquetadas outerloop: for j in 1...2 y innerloop: for i in 1...5.
Los nombres de etiqueta outerloop y innerloop pueden utilizarse junto con la instrucción continue.
En el programa, utilizamos la instrucción continue outerloop para saltar la ejecución de las instrucciones en los bucles internos y externos. Durante este proceso, los valores de i y j se actualizarán al siguiente número en el rango.