Codificación aprenderaprogramar.com: CU00534F
BUCLES WHILE EN LENGUAJE C
La instrucción while es una de las alternativas para la repetición de procesos en programación. Como veremos, guarda cierta similitud con la instrucción for, hasta el punto de que en algunas ocasiones podrá optarse por el uso de una u otra de forma indistinta. While es una palabra clave en C que admite varios usos.
La sintaxis a emplear con C es la siguiente:
while (condición) { Instrucción 1; Instrucción 2; . . . Instrucción n; } |
Las instrucciones while son anidables dentro de sí mismas o dentro de otras estructuras. Es importante verificar que los bucles diseñados con esta instrucción dispongan de una condición de salida válida.
Con este código se nos muestra en pantalla 3 veces hola, gracias a que se ha invertido el sentido del bucle:
#include <stdio.h> //Ejemplo aprenderaprogramar.com #include <stdlib.h> int main() { int i=0; //Declaración de variable while (i<3) { puts("hola\n"); i=i+1; } return 0; /*Fin del programa //return 0 */ } |
EJERCICIO RESUELTO Nº1: ENUNCIADO
Transformar en código el pseudocódigo que se muestra a continuación, relativo a un programa que pide un número del 1 al 10 y nos muestra la tabla de multiplicar correspondiente. Usar un bucle while para generar el bucle.
1. Inicio [Ejemplo aprenderaprogramar.com] 2. Mostrar “¿Qué tabla quiere conocer (de 1 a 10)?” 3. Pedir T 4. Mostrar “Tabla del”, T 5. Desde i = 1 hasta 10 Hacer Mostrar T, “*”, i, “=”, T * i Siguiente 6. Fin |
EJERCICIO RESUELTO Nº1: SOLUCIÓN
En este programa usamos la variable T para almacenar el número introducido por el usuario, y la variable i como contador en el bucle. La sentencia puts con una cadena vacía como argumento la usamos para introducir un salto de línea.
#include <stdio.h>
|
Un resultado de ejecución podría ser el siguiente:
Indique tabla que desea conocer (de 1 a 10): 8 TABLA DEL 8 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 8 * 9 = 72 8 * 10 = 80 |
BUCLES TIPO HACER … REPETIR MIENTRAS CON DO … WHILE. BREAK
La sintaxis a utilizar es:
do { Instrucción 1; Instrucción 2; . . . Instrucción n; } while (condición); |
Un bucle do … while es anidable dentro de sí mismo o dentro de otras estructuras. Es importante verificar que los bucles diseñados con esta instrucción dispongan de una condición de salida válida.
EJERCICIO RESUELTO Nº2: ENUNCIADO
Transformar en código el pseudocódigo que se muestra a continuación, relativo a un programa que muestre todos los enteros comprendidos entre un número definido por el usuario y 100, usando un bucle do … while.
1. Inicio [Ejercicio aprenderaprogramar.com] 2. Mostrar “Introduzca un número entero comprendido entre 1 y 99” : Pedir num 3. Desde i = num hasta 100 Hacer Mostrar i Siguiente 4. Fin |
EJERCICIO RESUELTO Nº2: SOLUCIÓN
#include <stdio.h> #include <stdlib.h> // Ejercicio resuelto aprenderaprogramar.com int main() { int num, i; printf ("Introduzca un numero entero comprendido entre 1 y 99: "); scanf ("%d", &num); puts(""); printf ("ENTEROS ENTRE %d y %d \n", num, 100); i = num; do { printf("%d \t", i); i=i+1;} while (i<=100); return 0; } |
Un resultado de ejecución podría ser este:
Introduzca un numero entero comprendido entre 1 y 99: 86 ENTEROS ENTRE 86 y 100 |
BREAK PARA FORZAR LA SALIDA DE BUCLES
El lenguaje C admite usar la sentencia break; para forzar la salida de un bucle sin esperar a que éste termine normalmente. Así una instrucción del tipo if (i>5) break; dentro de un bucle daría lugar a que durante la ejecución del bucle, en el momento en que se cumpliera que la variable i tomara un valor mayor que 5, se produjera la terminación del ciclo de repeticiones y se continuara la ejecución en la instrucción siguiente después del bucle. El uso de break; es común dentro de las sentencias switch, pero su uso resulta en general desaconsejable dentro de bucles (for, while, do while) ya que dificulta la comprensión del programa y el mantenimiento del mismo.
EJERCICIO Nº 1
Escribe un programa que use un bucle while para mostrar el resultado de multiplicar los números del 1 al 20 por el resultado de obtener el módulo (resto de la división que se obtiene usando el operador % de C) de dicho número con un número elegido por el usuario.
Ejemplo: el usuario elige el número tres. Los cálculos a realizar serán: resto de 1 entre 3 es 1, por pantalla se mostrará un 1, resto de 2 entre 3 es 2, por pantalla se mostrará un 2, resto de 3 entre 3 es cero, por pantalla se mostrará un cero, resto de 4 entre 3 es 1, por pantalla se mostrará un 1… así hasta terminar con resto de 20 entre 3 es 2, por pantalla se mostrará un 2.
Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com.
EJERCICIO Nº 2
Modifica el programa anterior para usar un bucle do while.
Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com.
EJERCICIO Nº 3
Escribe un programa que use un bucle while para calcular la potencia de un número al que denominaremos base sobre otro número al que denominaremos exponente, ambos elegidos por el usuario.
Ejemplo: el usuario elige como base el 4 y como exponente el 3. El programa debe mostrar el resultado de multiplicar la base por sí misma 3 veces, en este ejemplo 4*4*4 = 64.
Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com.
EJERCICIO Nº 4
Modifica el programa anterior para usar un bucle do while.
Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.