Ámbito de las variables

Es muy importante tener en cuenta el concepto de ámbito de las variables para no cometer errores de diseño. Aquí te doy una visión muy general que iremos ampliando poco apoco según avance el curso.

Puedes copiar este código y pegarlo en un archivo que se llame n_AmbitoVariables.java dentro del paquete A_Inicio para comprobar su funcionamiento.

/* Aprendiendo a programar en DAM con elProfesorEmilio */
package A_Inicio;

/**
 * @author elProfesorEmilio
 * Explicación muy general sobre el ámbito de las variables
 */
public class n_AmbitoVariables {  // Inicio de bloque

    public static void main(String[] args) {  // Inicio de bloque
        /*
        ÁMBITO DE UNA VARIABLE
        Nos dice dónde puede utilizarse una variable y viene definido por
        el bloque en el que se declara
        Una variable sólo se podrá ver en el bloque que se ha declarado
        y en bloques internos a este, pero no en bloques más externos.
        Un bloque viene definido por una llave que abre y otra que cierra
        {
            todo lo que vaya dentro de un bloque debes tabularlo
            para mejorar la legibilidad
        }
        */

        int a = 0; 
        // Aquí no existe b no funcionaría lo siguiente
        // System.out.println(b);
        if (a<=5) { // Inicio de bloque
            int b = 1;
        } // Fin de bloque 
        // Si trato de escribir b no la encuentra porque no existe
        // Quita el comentario a la siguiente línea y verás que da error
        // System.out.println(b);
        int b = 3;
        // Aunque declare aquí la variable, en las instrucciones anteriores 
        // no puede utilizarse b porque aún no existe.
        for (int i=0; i<5; i++) { // Inicio de bloque
            System.out.println(i);
        } // Fin de bloque
        // Aquí no se vería i, descomenta y verás
        // System.out.println(i);
        
        
        // En este caso al declarar i fuera, se puede ver cuántas veces ha sido
        // sumada la variable
        int i;
        for (i = 0; i < 10; i++) {
            System.out.println(i);
        }
        System.out.println(i);
    }
}