Vídeo: Curso de Java - Aula 32 - Blocos de Instrução I - eXcript 2024
Os desenvolvedores de Java geralmente experimentam problemas para descobrir por que um aplicativo está a se comportar mal ao encontrar um problema de acesso ao bloco. A diretriz básica é que qualquer variável que você cria dentro de um bloco é definida apenas dentro desse bloco. Por exemplo, quando você olha o código a seguir, você vê um cenário típico de acesso ao bloco.
// Crie uma variável dentro de um bloco. para (int i = 0; i <10; i ++) // Exibe o valor dessa variável. Sistema. Fora. println ("O valor de i é:" + i); // O acesso fora do bloco não funciona. Sistema. Fora. println ("O valor de i é:" + i);
O exemplo exibe o valor de i dentro do loop for (um tipo de bloco) sem problema. No entanto, tentar acessar i fora do bloco não é aceitável porque a variável não está definida. O compilador detectará esse erro.
Outro problema potencial ocorre quando uma variável é definida no aplicativo e também dentro de um bloco. Como essa situação provavelmente criará problemas, as versões mais recentes do Java não permitirão o tipo de código mostrado aqui:
public static void main (String [] args) {// Define uma variável. int i = 0; // Crie uma variável dentro de um bloco. para (int i = 0; i <10; i ++) // Exibe o valor dessa variável. Sistema. Fora. println ("O valor de i é:" + i); // O acesso fora do bloco não funciona. Sistema. Fora. println ("O valor de i é:" + i);}
O compilador nem sempre o impedirá de disparar no pé. Em muitas situações, o desenvolvedor faz algo com a variável e não entende as conseqüências. Por exemplo, o seguinte código é perfeitamente legal em Java.
public static void main (String [] args) {// Define uma variável. int i = 0; // Crie uma variável dentro de um bloco. para (i = 0; i <10; i ++) // Exibe o valor dessa variável. Sistema. Fora. println ("O valor de i é:" + i); // O acesso fora do bloco não funciona. Sistema. Fora. println ("O valor de i é:" + i);}
O loop for exibe os valores 0 a 9 por causa da condição dentro da declaração for loop. A chamada final para o sistema. Fora. println () exibe um valor de 10, não 0 ou 9, como alguns desenvolvedores podem esperar.
A parte i ++ da declaração ocorre e, em seguida, a condição é avaliada, então o valor final de i é 10, não 9, pois deve ser 10 para que a condição se torne falsa.
O ponto é que você deve considerar como um bloco funciona com uma variável para determinar se você pode acessar a variável e o que o valor irá conter na saída do bloco.