--- id: java-scope title: "Java Scope" category: "Programming_Language" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["자바 변수 범위"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.9 created_at: 2026-07-04 updated_at: 2026-07-04 review_reason: "" merge_history: [] tags: ["java", "programming", "w3schools", "scope"] raw_sources: ["https://www.w3schools.com/java/java_scope.asp"] applied_in: [] github_commit: "" --- # [[Java Scope]] ## 🎯 한 줄 통찰 (One-line insight) A loop's counter variable dies when the loop ends, which means the same name (`i`, `j`) can be safely reused across separate loops in the same method — scope isn't just a restriction, it's what enables variable-name reuse without conflict. [S1] ## 🧠 핵심 개념 (Core concepts) - **Scope** — the region where a variable is accessible; Java variables live only inside the region where they're created. [S1] - **Method scope** — a variable is usable anywhere in the method AFTER its declaration line, not before. [S1] - **Block scope** — `{ }` delimits a block; a variable declared inside is accessible only within that block, and only after its declaration line. [S1] - **Loop scope** — a variable declared in a for-loop header exists only inside that loop; it's destroyed once the loop ends. [S1] - **Name reuse across loops** — since each loop's `i` is destroyed at loop end, separate loops in the same method can reuse the same variable name. [S1] ## 📖 세부 내용 (Details) - Method scope: `int x = 100;` declared mid-method is unusable before its declaration line, usable after. [S1] - Block scope: a variable declared inside `{ }` is inaccessible both before the block and after it ends. [S1] - Loop scope: `for (int i = 0; i < 5; i++) { System.out.println(i); } // i is NOT accessible here`. [S1] - Reused loop variable names: two separate `for (int i = 0; ...)` loops in the same method, each with their own independent `i`. [S1] ## ⚖️ 모순 및 업데이트 (Contradictions & updates) 소스에서 모순되는 정보는 발견되지 않음. ## 🛠️ 적용 사례 (Applied in summary) 현재 발견된 실제 적용 사례가 없습니다 — 여러 반복문에서 동일한 변수명(i, j)을 안전하게 재사용할 수 있는 근거가 스코프 규칙이다. [S1] ## 💻 코드 패턴 (Code patterns) Safe reuse of loop variable name across separate loops (Java): ```java for (int i = 0; i < 3; i++) { System.out.println("Loop 1: " + i); } for (int i = 0; i < 2; i++) { System.out.println("Loop 2: " + i); } ``` ## ✅ 검증 상태 및 신뢰도 - **상태:** draft - **검증 단계:** conceptual - **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body) - **신뢰 점수:** 0.90 - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[Java Tutorial]] - **관련 개념:** [[Java For Loop]], [[Java Methods]], [[Java Recursion]] - **참조 맥락:** 변수 접근 범위 규칙 — 메서드/블록/반복문 스코프의 차이. ## 📚 출처 (Sources) - [S1] W3Schools — Java Scope — https://www.w3schools.com/java/java_scope.asp ## 📝 변경 이력 (Change history) - 2026-07-04: Initial draft synthesized from the W3Schools "Java Scope" page (Astra wiki-curation, P-Reinforce v3.1 format).