Sentencias iterativas Iteración Una instrucción de iteración (ciclo, o también bucle) permite realizar un proceso una o varias veces hasta que se cumpla la condición. Siempre debe existir alguna sentencia que afecte la condición, en caso contrario se convierte en un ciclo infinito (loop). 1.- While while(condición) { sentencia 1; ⋮ sentencia 𝑛; } 2.- Do – While do{ sentencia 1; ⋮ sentencia 𝑛; }while(condición); 3.- For for(condición inicial; expresión lógica; operación) { sentencia 1; ⋮ sentencia 𝑛; } 4.- Switch Switch(expresión de control) { case 1: sentencia 11 ; ⋮ Sentencia 1𝑛 ; break; //Se utiliza para finalizar el ciclo (romperlo) case 2: sentencia 21 ; ⋮ Sentencia 2𝑛 ; break; ⋮ default: //Esta opción funciona como el “else” sentencia 1; ⋮ sentencia 𝑛; } Bucles infinitos A continuación, tenemos un fragmento de un programa que utiliza un ciclo de tipo iterativo (while): int i=1, n=20; while(i<=n) { printf(“El numero es: %d”, i); } Si analizamos el fragmento, nos daremos cuenta de que se trata de un bucle infinito, pues el programa mostrará infinitamente la variable “i” (que equivale a 1) ya que no existe ninguna sentencia que afecte esa condición. La pregunta ahora es ¿Cómo evitarlo? La respuesta está en añadir alguna o algunas sentencias que transformen el proceso infinito, en un proceso finito. int i=1, n=20; while(i<=n) { printf(“El numero es: %d”, i); i++; } Nótese que algo tan mínimo como incrementar la variable “i” de uno en uno convertirá el bucle infinito en algo finito, ya que por cada ciclo, la variable aumentará en una unidad, lo que significa que cuando llegue al veinteavo proceso, la condición ya no se cumplirá y el programa terminará. Ejemplos 1.- Escriba un programa en C que muestre por pantalla los 𝑛 primeros números naturales. int main() { int n, i=1; printf(“Ingrese n: ”); scanf(“%d”, &n); while(i<=n) { printf(“%d”, i); i++; } } 2.- Escriba un algoritmo en C que muestre por pantalla los 𝑛 primeros números naturales impares. int main() { int n, i=1; printf(“Ingrese n: “); scanf(“%d”, &n); while(i<=n) { printf(“%d”, i); i+=2; } } Ejercicios propuestos 1.- Escriba un programa en C que dado un número cualquiera (ingresado por pantalla), determine todos sus divisores. 2.- Escriba un programa en C que lea por pantalla 𝑛 datos (𝑛 se ingresa desde teclado) y determine: a) El mayor número. b) El menor número. c) El promedio de todos los números. 3.- Escriba un programa en C que lea un número por pantalla y determine si es primo.