Analicemos cuidadosamente el código de este desafío… ¿Qué crees que sucede cuando se lo ejecuta? ¿Y por qué?

Click aquí para desplegar la solución. 👈
✅ La respuesta correcta es la d: Se produce un error de compilación porque la variable x está declarada dentro de un bloque (formado por las llaves) y no es accesible fuera de él.

✏️ Explicación: la variable x se encuentra declarada en un bloque definido por las llaves de las líneas 4 y 6 del código. Fuera de ese bloque, la variable no existe.
Varias personas han preguntado si las llaves estaban incorrectamente colocadas, y no es así. El error se produce por un problema de alcance de la variable cuando se intenta acceder a ella desde un ámbito mayor al bloque que la contiene. Aunque este es un fragmento de código de ejemplo y es verdad que ese bloque no tiene sentido ahí, de todas formas el bloque formado por las llaves es válido.
En Java, las llaves crean un bloque de código con su propio ámbito y no es necesario que ese bloque forme parte de un if, for, while, etc.
🤔 ¿Y qué pasa con el for de la línea 7? ¿Por qué no tiene llaves? La respuesta a esto es válida para varios lenguajes, no solo Java: las llaves solo son necesarias cuando el bloque incluye más de una instrucción. Si ponemos llaves en un bloque que solo contiene una instrucción, esas llaves son opcionales. En este caso, el bloque de código dentro del for tiene solo una instrucción y entonces no es obligatorio que tenga llaves.


Solución al desafío



Desafío Java 👇
Desafío Java número 5

Click aquí para una versión accesible de la infografía (apta para lectores electrónicos)

¿Cuál es la salida del programa?

class Desafio {
    public static void main (String[] args) {
        int i = 0;
        {
            int[] x = {0, 1, 2};
        }
        for (i = 0; i < x.length; i++)
            System.out.print(x[i]);
    }
}

Opciones:

a. 012.

b. 000.

c. Error en tiempo de ejecución.

d. Error de compilación.