Objetivo: aprender a utilizar la instrucción continue para saltar directamente a la siguiente iteración en un bucle en Python.
En el artículo anterior presentamos la instrucción break, que nos permitía interrumpir la ejecución de un bucle y salir de él. Hoy mostraremos la sentencia continue, muy relacionada con la anterior.
Al igual que break, continue cancela la ejecución de las instrucciones que quedan pendientes del bucle a partir del mismo momento de su aparición.
Pero, a diferencia de break, que ocasionaba, además, la terminación brusca del bucle, dejando de producirse más repeticiones, continue hace que se salte inmediatamente a la siguiente repetición. Es decir, vuelve a comprobarse nuevamente si se cumple la condición y, en caso afirmativo, continúa ejecutándose el bloque desde el principio otra vez.
Para ilustrar su uso, diseñaremos un programa que nos inste a introducir un número. Su misión será calcular la suma de todo lo que vayamos introduciendo, pero sólo teniendo en cuenta los números pares, ignorando los impares.
suma = 0
while True:
numero = int(input('Introduce un número (0 para terminar):'))
if numero == 0:
break
if numero % 2 != 0:
continue
suma = suma + numero
print(suma)
Comenzamos inicializando la variable suma, que contendrá la suma final buscada.
suma = 0
Y nos adentramos en un bucle infinito:
while True:
La condición es cierta siempre, por lo que habrá dotar al programa de mecanismos para interrumpir el bucle.
Introducimos un número, lo convertimos a entero y lo asignamos a la variable numero.
numero = int(input('Introduce un número (0 para terminar):'))
Si el número introducido es cero (el valor centinela) rompemos el bucle con la instrucción break.
if numero == 0:
break
Pero, si no lo es, nos encontramos con el siguiente bloque if, que contiene la instrucción objeto del artículo de hoy:
if numero % 2 != 0:
continue
El % es el operador módulo, que calcula el resto de una división. Que el resto de dividir un número entre dos no sea cero significa que el número es impar.
Los números impares, tal como está planteado el problema, debemos ignorarlos y no tenemos que incluirlos en la suma. ¿Qué hacer?
Continuar, así de simple: deja de ejecutarse lo que queda de bucle y vuelve otra vez al comienzo, reevaluando la condición. Eso es precisamente lo que hace la sentencia continue.
Cuando el número introducido es par, entonces si se acumulará a la suma total:
suma = suma + numero
Y así sucesivamente hasta que nos cansemos e introduzcamos el centinela, momento en el cual se rompe el bucle y se prosigue con la primera sentencia fuera de él: la impresión del resultado final.
print(suma)
Vuelve al código completo más arriba y comprueba el programa globalmente. Presta mucha atención a las indentaciones que delimitan cada bloque.
Naturalmente, hay medios de resolver este problema sin emplear una instrucción continue, pero he preferido esta solución, en la que se aprecia claramente el uso y diferencia entre los dos modos de alterar la ejecución de un bucle: break y continue.
Javier Montero Gabarró
Fecha de la última revisión: 24 de septiembre de 2012
http://elclubdelautodidacta.es/wp/2011/07/python-capitulo-10-continue-por-favor/
El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)
El Club del Autodidacta
Consulta el índice completo de artículos relacionados con Python.