Vidéo: MineCraft Snapshot 19w02a : Feu de Camp ! 2024
Les développeurs Java rencontrent souvent des problèmes pour comprendre pourquoi une application se comporte mal quand elle rencontre un problème d'accès au bloc. La règle de base est que toute variable que vous créez dans un bloc est définie uniquement dans ce bloc. Par exemple, lorsque vous regardez le code suivant, vous voyez un scénario d'accès au bloc typique.
// Crée une variable à l'intérieur d'un bloc. pour (int i = 0; i <10; i ++) // Affiche la valeur de cette variable. Système. en dehors. println ("La valeur de i est:" + i); // L'accès en dehors du bloc ne fonctionne pas. Système. en dehors. println ("La valeur de i est:" + i);
L'exemple affiche la valeur de i dans la boucle for (un type de bloc) sans problème. Cependant, essayer d'accéder à i en dehors du bloc n'est pas acceptable car la variable n'est pas définie. Le compilateur va attraper cette erreur.
Un autre problème potentiel se produit lorsqu'une variable est définie dans l'application et également dans un bloc. Cette situation étant susceptible de créer des problèmes, les nouvelles versions de Java n'autoriseront pas le type de code indiqué ici:
public static void principal (String [] args) {// Définit une variable. int i = 0; // Crée une variable à l'intérieur d'un bloc. pour (int i = 0; i <10; i ++) // Affiche la valeur de cette variable. Système. en dehors. println ("La valeur de i est:" + i); // L'accès en dehors du bloc ne fonctionne pas. Système. en dehors. println ("La valeur de i est:" + i);}
Le compilateur ne vous empêchera pas toujours de vous tirer dans le pied. Dans de nombreuses situations, le développeur fait quelque chose avec la variable et ne comprend pas les conséquences. Par exemple, le code suivant est parfaitement légal en Java.
public static void principal (String [] args) {// Définit une variable. int i = 0; // Crée une variable à l'intérieur d'un bloc. pour (i = 0; i <10; i ++) // Affiche la valeur de cette variable. Système. en dehors. println ("La valeur de i est:" + i); // L'accès en dehors du bloc ne fonctionne pas. Système. en dehors. println ("La valeur de i est:" + i);}
La boucle for affiche les valeurs 0 à 9 en raison de la condition dans la déclaration de boucle for. L'appel final au système. en dehors. println () affiche une valeur de 10, pas 0 ou 9 comme certains développeurs peuvent s'attendre.
La partie i ++ de la déclaration se produit, puis la condition est évaluée, donc la valeur finale de i est 10, pas 9 parce qu'elle doit être 10 pour que la condition devienne fausse.
Le point est que vous devez considérer comment un bloc fonctionne avec une variable afin de déterminer si vous pouvez accéder à la variable et ce que la valeur contiendra à la sortie du bloc.