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.9. Las llaves son recomendables

Sabemos que las "llaves" no son necesarias cuando una orden "for" va a repetir una única sentencia, sino cuando se repite un bloque de dos o más sentencias, y que lo mismo ocurre con "while", "do-while" e "if". Pero un error frecuente es repetir inicialmente una única orden, añadir después una segunda orden repetitiva y olvidar las llaves. Por eso, una alternativa recomendable es incluir siempre las llaves, aunque esperemos repetir sólo una una orden.

Por ejemplo, el siguiente fuente puede parecer correcto, pero si lo miramos con detenimiento, veremos que la orden "Console.WriteLine" del final, aunque esté tabulada más a la derecha, no forma parte de ningún "for", de modo que no se repite, y no se dejará ningún espacio en blanco entre una tabla de multiplicar y la siguiente, sino que sólo se escribirá una línea en blanco al final, justo antes de terminar el programa:

// Ejemplo_02_02_09a.cs
// "for" anidados de forma incorrecta, sin llaves
// Introducción a C#, por Nacho Cabanes

using System;

public class Ejemplo_02_02_09a
{
    public static void Main()
    {
        for (int tabla=1; tabla<=5; tabla++) 
            for (int numero=1; numero<=10; numero++) 
                Console.WriteLine("{0} por {1} es {2}", tabla, numero,
                    tabla*numero);
            Console.WriteLine();
    }
}

Por eso, una alternativa recomendable es incluir siempre las llaves, aunque inicialmente esperemos repetir sólo una una orden:

// Ejemplo_02_02_09b.cs
// "for" anidados, variables en "for", llaves "redundantes"
// Introducción a C#, por Nacho Cabanes

using System;

public class Ejemplo_02_02_09b
{
    public static void Main()
    {
        for (int tabla=1; tabla<=5; tabla++) 
        {
            for (int numero=1; numero<=10; numero++) 
            {
                Console.WriteLine("{0} por {1} es {2}", tabla, numero,
                    tabla*numero);
            }

            Console.WriteLine();
        }
    }
}

Ejercicios propuestos:

Ejercicio propuesto 2.2.9.1: Crea un programa que pida un número al usuario y escriba los múltiplos de 9 que haya entre 1 ese número. Debes usar llaves en todas las estructuras de control, aunque sólo incluyan una sentencia.
Ejercicio propuesto 2.2.9.2: Crea un programa que pida al usuario dos números y escriba sus divisores comunes. Debes usar llaves en todas las estructuras de control, aunque sólo incluyan una sentencia.