Anuncios

Bienvenidos sean a este post, si vienen pueden ser parecidos tienen sutiles diferencias.

Anuncios

break

Esta funcion ya la vimos con switch en este post y nos servia para salir del condicional, esto es asi porque break sirve para salir del bloque donde este trabajando ya sea condicional o bucle.

Anuncios

continue

Esta funcion no sale del bloque pero termina toda accion y vuelve al comienzo del bloque, en este caso lo veran mucho mas cuando trabajamos con bucles, ya sea para el caso de for asi como while tambien, porque en este caso omitira la pasada donde se ejecuto el continue.

Anuncios

Como pueden ver son dos funciones diferentes pero estan relacionadas entre si, para entender como trabajan vamos a crear un nuevo ejemplo, para ello generen un nuevo archivo llamado break.c y le agregaremos el siguiente codigo:

break.c

#include <stdio.h>

int main()
{
	int numero=0;
	int contar=0;

	for(;;)
	{
		++numero;
		int calculo=numero % 2;

		if (calculo != 0)
			continue;
		else if (numero > 20)
			break;
		else
			printf("numero: %i\n", numero);
			contar++;
	}
	
	printf("Hay %i numeros pares\n", contar);

	return 0;
}
Anuncios
Anuncios

Pasemos a comentar el codigo, en este caso creamos un programa que nos devolvera la cantidad de numeros pares en un rango, para ello primero definiremos dos variables, la primera sera numero y sera la que usaremos para incrementar, luego tenemos a contar para almacenar la cantidad de numeros pares, si recuerdan cuando hablamos del bucle for en este post mencionamos que los elementos para manejar el bucle eran opcionales, este que tenemos aqui se considera un bucle infinito porque realmente no tenemos forma de terminarlo, aunque eso no es del todo cierto porque en el codigo tendremos como detenerlo, primero incrementaremos el valor de numero por medio del operador incrementador, despues definiremos una nueva variable llamada calculo la cual almacenara el resultado de aplicar el operador de modulo sobre la division del valor de numero por 2, despues tenemos un condiconal que verifica si el valor de numero es distinto de 0, esta condicion sera verdadera cuando los numeros sean impares (la operacion devuelve 0) por lo tanto utilizara continue, y saltara el resto de las instrucciones del bloque, despues tenemos un else if donde verifica si numero es mayor a 20, en caso de ser verdadero ejecuta el break y procede a terminar el bucle y salir del mismo, finalizando el bucle infinito, por ultimo tenemos un else donde en caso de no cumplirse ninguna de las dos condiciones anteriores procede a mostrar el valor de numero e incrementar a contar.

Anuncios
Nota:
Esto no lo comente en su momento pero las llaves para establecer el bloque del condicional son opcionales pero es una mejor practica utilizarlos para reconocer mejor visualmente todas las instrucciones de la condicion.
Anuncios

Todo esto sucedera mientras numero no sea mayor a 20, cuando esto suceda y salga del bucle procedera a mostrarnos el valor final de contar y finalizara el programa, compilemos y veamos como es su salida:

tinchicus@dbn001vrt:~/lenguajes/C$ ./prog/break 
numero: 2
numero: 4
numero: 6
numero: 8
numero: 10
numero: 12
numero: 14
numero: 16
numero: 18
numero: 20
Hay 10 numeros pares
tinchicus@dbn001vrt:~/lenguajes/C$
Anuncios

Observen como ignoro todos los numeros impares y al final conto correctamente la cantidad de numeros pares, esto gracias al continue y el break al igual que vimos en switch nos sirve para terminar y salir del bloque donde este, este es para lo que mas lo usaremos en nuestros codigos pero no se preocupen porque mas adelante veremos otros usos mas practicos.

Anuncios

En resumen, hoy hemos visto a break y continue, que son, para que sirven, como podemos utilizarlas, y un ejemplo practico para verlos en accion, tambien vimos otra forma de sintaxis de if asi como otro bucle infinito, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50