Este sitio web usa cookies de terceros para analizar el tráfico y personalizar los anuncios. Si no está de acuerdo, abandone el sitio y no siga navegando por él. ×


2.2. Estructuras repetitivas

Hemos visto cómo comprobar condiciones, pero no cómo hacer que una cierta parte de un programa se repita un cierto número de veces o mientras se cumpla una condición (lo que llamaremos un "bucle"). En C# tenemos varias formas de conseguirlo.

2.2.1. while

2.2.1.1. Estructura básica de un bucle "while"

Si queremos hacer que una sección de nuestro programa se repita mientras se cumpla una cierta condición, usaremos la orden "while". Esta orden tiene dos formatos distintos, según comprobemos la condición al principio o al final del bloque repetitivo.

En el primer caso, su sintaxis es

   while (condición)
     sentencia;

Es decir, la sentencia se repetirá mientras la condición sea cierta. Si la condición es falsa ya desde un principio, la sentencia no se ejecuta nunca. Si queremos que se repita más de una sentencia, basta agruparlas entre llaves: { y }.

Un ejemplo que nos diga si cada número que tecleemos es positivo o negativo, y que termine cuando tecleemos el número 0, podría ser:

// Ejemplo_02_02_01_01a.cs
// La orden "while": mientras...
// Introducción a C#, por Nacho Cabanes

using System;

public class Ejemplo_02_02_01_01a
{
    public static void Main()
    {
        int numero;

        Console.Write("Teclea un número (0 para salir): ");
        numero = Convert.ToInt32(Console.ReadLine());

        while (numero != 0)
        {
            if (numero > 0) Console.WriteLine("Es positivo");
            else Console.WriteLine("Es negativo");

            Console.WriteLine("Teclea otro número (0 para salir): ");
            numero = Convert.ToInt32(Console.ReadLine());
        }
    }
}

En este ejemplo, si se introduce 0 la primera vez, la condición es falsa y ni siquiera se entra al bloque del "while", terminando el programa inmediatamente.

Ejercicios propuestos:

Ejercicio propuesto 2.2.1.1.1: Crea un programa que pida al usuario su contraseña (numérica). Deberá terminar cuando introduzca como contraseña el número 1111, pero volvérsela a pedir tantas veces como sea necesario.
Ejercicio propuesto 2.2.1.1.2: Crea un "calculador de cuadrados": pedirá al usuario un número y mostrará su cuadrado. Se repetirá mientras el número introducido no sea cero (usa "while" para conseguirlo).
Ejercicio propuesto 2.2.1.1.3: Crea un programa que pida de forma repetitiva pares de números al usuario. Tras introducir cada par de números, responderá si el primero es múltiplo del segundo.
Ejercicio propuesto 2.2.1.1.4: Crea una versión mejorada del programa anterior, que, tras introducir cada par de números, responderá si el primero es múltiplo del segundo, o el segundo es múltiplo del primero, o ninguno de ellos es múltiplo del otro.

2.2.1.2. Contadores usando un bucle "while"

Ahora que sabemos "repetir" cosas, podemos utilizarlo también para contar. Por ejemplo, si queremos contar del 1 al 5, usaríamos una variable que empezase en 1, que aumentaría una unidad en cada repetición y se repetiría hasta llegar al valor 5, así:

// Ejemplo_02_02_01_02a.cs
// Contar con "while"
// Introducción a C#, por Nacho Cabanes

using System;

public class Ejemplo_02_02_01_02a
{
    public static void Main()
    {
        int n = 1;

        while (n < 6)
        {
            Console.WriteLine(n);
            n = n + 1;
        }
    }
}

Ejercicios propuestos:

Ejercicio propuesto 2.2.1.2.1: Crea un programa que escriba en pantalla los números del 1 al 10, usando "while".
Ejercicio propuesto 2.2.1.2.2: Crea un programa que escriba en pantalla los números pares del 26 al 10 (descen-diendo), usando "while".
Ejercicio propuesto 2.2.1.2.3: Crea un programa calcule cuantas cifras tiene un número entero positivo (pista: se puede hacer dividiendo varias veces entre 10).
Ejercicio propuesto 2.2.1.2.4: Crea el diagrama de flujo y la versión en C# de un programa que dé al usuario tres oportunidades para adivinar un número del 1 al 10.