Aký je rozsah premennej deklarovanej vo vnútri prípadu a používa sa vonku v Java?

Jun 06, 2025|

Hej! Ako dodávateľ prepínača som sa zaoberal najrôznejšími prepínačmi, napríkladTrojfázový kokomplementárny kapacitný bezkontaktný spínač,Doplnkový kombinovaný prepínačaSpätná fázová kompenzácia bezkontaktný prepínač. Ale dnes sa chcem porozprávať o niečom vo svete programovania Java - rozsah premennej vyhlásenej vo vnútri aprípada používané vonku.

Po prvé, poďme rýchlo prejsť, čo aprepínanieVyhlásenie je v Jave. AprepínaniePríkaz je príkaz na viacnásobné vetvy, ktorý poskytuje jednoduchý spôsob, ako odoslať vykonanie do rôznych častí kódu na základe hodnoty výrazu. Je to niečo ako ovládač dopravy, ktorý smeruje tok vášho programu v závislosti od určitej podmienky.

Teraz, keď hovoríme o premenných vyhlásených vo vnútri aprípadBlok, veci môžu byť trochu zložitejšie. V Java je rozsah premennej súčasťou programu, kde je prístupná premenná. Všeobecne platí, že premenná deklarovaná vo vnútri bloku (ako tá vprípadvyhlásenia) má miestny rozsah tohto bloku.

Pozrime sa na jednoduchý príklad:

public class switchvariablescope {public static void main (String [] args) {int choice = 2; prepínač (výber) {prípad 1: int localVar = 10; System.out.println ("Hodnota v prípade 1:" + localVar); prerušenie; Prípad 2: System.out.println („Vybraný prípad 2“); prerušenie; predvolené: System.out.println ("No Match"); } // Nasledujúci riadok spôsobí chybu kompilácie // system.out.println (localVar); }}

V tomto príklade premennálokálny výrobokje vyhlásený vo vnútriprípad 1blok. Jeho rozsah je obmedzený na toprípad 1iba blok. Ak sa k nemu pokúsime získať prístup mimo tohto bloku, ako na koncihlavnýMetóda, Java hodí chybu kompilácie. Je to preto, že akonáhle program opustíprípad 1Blok, premenná už v aktuálnom rozsahu neexistuje.

Ale čo ak chceme použiť premennú vyhlásenú v jednomprípadnaprieč rôznymiprípadvyhlásenia alebo dokonca mimoprepínanievyhlásenie? Nemôžeme to priamo urobiť, ak je premenná deklarovaná vo vnútri aprípadblok. Existuje však niekoľko riešení.

Jedným zo spôsobov je deklarovať premennú mimoprepínanievyhlásenie. Týmto spôsobom má širší rozsah a dá sa k nej prístup zprepínaniea tiež mimo neho. Takto sa to dá urobiť:

public class switchvariablescopeworkaround {public static void main (String [] args) {int choice = 2; int localvar; prepínač (výber) {prípad 1: localVar = 10; System.out.println ("Hodnota v prípade 1:" + localVar); prerušenie; Prípad 2: localVar = 20; System.out.println ("Hodnota v prípade 2:" + localVar); prerušenie; predvolené: localVar = -1; System.out.println ("Žiadna zhoda, hodnota nastavená na:" + localVar); } System.out.println ("Value Outsed Switch:" + localVar); }}

V tomto aktualizovanom kóde premennálokálny výrobokje vyhlásený za mimoprepínanievyhlásenie. Vo vnútri každéhoprípadblok, môžeme mu priradiť rôzne hodnoty a môžeme k nej tiež získať prístup mimoprepínanievyhlásenie. To nám poskytuje väčšiu flexibilitu pri používaní premennej.

Ďalším prístupom je použitie poľa alebo zbierky na ukladanie hodnôt, ktoré sú relevantné pre rôzneprípadvyhlásenia. Napríklad:

import java.util.arraylist; import java.util.list; public class switchVariablesCoCollection {public static void main (String [] args) {int choice = 2; Zoznam <Vý to hodnoty = new ArrayList <> (); prepínač (výber) {prípad 1: hodnoty.add (10); System.out.println ("pridaná hodnota v prípade 1:" + hodnoty.get (0)); prerušenie; Prípad 2: Hodnoty.add (20); System.out.println ("Pridaná hodnota v prípade 2:" + hodnoty.get (0)); prerušenie; predvolené: hodnoty.add (-1); System.out.println ("No Match, pridaná hodnota:" + Value.get (0)); } System.out.println ("Hodnota v zozname Outsed Switch:" + hodnoty.get (0)); }}

Tu používameZoznamna ukladanie hodnôt súvisiacich s rôznymiprípadvyhlásenia. Zoznam má rozsah, ktorý obsahuje celýhlavnýmetóda, aby sme k nej pristupovali vo vnútri aj mimoprepínanievyhlásenie.

Prečo teraz chápe rozsah premenných v aprepínanieVyhlásenie dôležité? Pomáha to pri písaní čistého kódu bez chýb. Ak nevenujeme pozornosť variabilnému rozsahu, mohli by sme skončiť s neočakávaným správaním alebo chybami kompilácie. Napríklad, ak sa náhodou pokúsime získať prístup k premennej mimo jej rozsahu, náš program nebude zostaviť. A ak deklarujeme premenné neefektívnym spôsobom, môže to viesť k problémom s pamäťou alebo ťažko debugovému kódu.

Ako dodávateľ prepínaču viem, aké dôležité je porozumieť prínosom a výstupom z produktov, s ktorými sa zaoberám. Podobne pri programovaní pochopenie rozsahu premenných v aprepínanieVyhlásenie je rozhodujúce pre písanie vysoko kvalitného kódu.

Ak ste v programovaní a chcete sa dozvedieť viac o Java alebo máte akékoľvek otázky týkajúce sa rozsahu premenných, neváhajte a oslovte. A ak ste na trhu vysokokvalitných prepínačov akoTrojfázový kokomplementárny kapacitný bezkontaktný spínač,Doplnkový kombinovaný prepínačaleboSpätná fázová kompenzácia bezkontaktný prepínač, neváhajte a kontaktujte nás na vyjednávanie nákupu. Sme tu, aby sme vám pomohli nájsť najlepšie riešenia pre vaše potreby.

Referencie:

Split Phase Compensation Non-contact SwitchJNFK 450V (8)

  • Špecifikácia jazyka Java
  • Hlavne prvú Java od Kathy Sierra a Bert Bates
Zaslať požiadavku