Video: C Programming Tutorial | Learn C programming | C language 2024
Java-ontwikkelaars ondervinden vaak problemen bij het uitzoeken waarom een toepassing zich niet goed gedraagt wanneer er een probleem met de toegang tot een blok optreedt. De basisrichtlijn is dat elke variabele die u binnen een blok maakt, alleen binnen dat blok wordt gedefinieerd. Als u bijvoorbeeld naar de volgende code kijkt, ziet u een typisch bloktoegangsscenario.
// Maak een variabele binnen een blok. for (int i = 0; i <10; i ++) // Geef de waarde van die variabele weer. Systeem. uit. println ("De waarde van i is:" + i); // Toegang buiten het blok werkt niet. Systeem. uit. println ("De waarde van i is:" + i);
Het voorbeeld toont de waarde van i binnen de for-lus (een type blok) zonder probleem. I proberen buiten het blok om toegang te krijgen is echter niet acceptabel omdat de variabele niet is gedefinieerd. De compiler zal deze fout opvangen.
Een ander potentieel probleem doet zich voor wanneer een variabele wordt gedefinieerd in de toepassing en ook binnen een blok. Omdat deze situatie waarschijnlijk tot problemen leidt, zullen nieuwere versies van Java het soort code dat hier wordt weergegeven, niet toestaan:
public static void main (String [] args) {// Definieer een variabele. int i = 0; // Maak een variabele binnen een blok. for (int i = 0; i <10; i ++) // Geef de waarde van die variabele weer. Systeem. uit. println ("De waarde van i is:" + i); // Toegang buiten het blok werkt niet. Systeem. uit. println ("De waarde van i is:" + i);}
De compiler voorkomt niet altijd dat u zichzelf in de voet schiet. In veel situaties doet de ontwikkelaar iets met de variabele en begrijpt hij de gevolgen niet. De volgende code is bijvoorbeeld volkomen legaal in Java.
public static void main (String [] args) {// Definieer een variabele. int i = 0; // Maak een variabele binnen een blok. for (i = 0; i <10; i ++) // Geef de waarde van die variabele weer. Systeem. uit. println ("De waarde van i is:" + i); // Toegang buiten het blok werkt niet. Systeem. uit. println ("De waarde van i is:" + i);}
De for-lus geeft de waarden 0 tot en met 9 weer vanwege de voorwaarde in de for-lus-declaratie. De laatste oproep aan System. uit. println () geeft een waarde van 10, niet 0 of 9 weer, zoals sommige ontwikkelaars zouden verwachten.
Het i ++ deel van de declaratie komt voor, en dan wordt de voorwaarde geëvalueerd, dus de eindwaarde van i is 10, niet 9 omdat het 10 moet zijn om de voorwaarde onwaar te maken.
Het punt is dat u moet overwegen hoe een blok werkt met een variabele om te bepalen of u toegang hebt tot de variabele en wat de waarde zal bevatten bij het verlaten van het blok.