비디오: [코딩클럽]스크래치이해하기 - 데이터 변수 사용하기 2024
Java 개발자는 종종 블록 액세스 문제가 발생했을 때 응용 프로그램이 오동작하는 이유를 파악하는 데 문제가 있습니다. 기본 지침은 블록 내에서 만드는 모든 변수가 해당 블록 내에서만 정의된다는 것입니다. 예를 들어, 다음 코드를 보면 일반적인 블록 액세스 시나리오를 볼 수 있습니다.
// 블록 안에 변수를 만듭니다. for (int i = 0; i <10; i ++) // 해당 변수의 값을 표시합니다. 체계. 아웃. println ("i의 값은:"+ i); // 블록 외부의 액세스가 작동하지 않습니다. 체계. 아웃. println ("i의 값은:"+ i);
이 예제는 문제없이 for 루프 (블록 유형) 내의 i 값을 표시합니다. 그러나 변수가 정의되지 않았으므로 블록 외부의 i에 액세스하려고하면 안됩니다. 컴파일러는이 오류를 catch합니다.
또 다른 잠재적 인 문제는 변수가 응용 프로그램과 블록 내에 정의되어있을 때 발생합니다. 이 상황이 문제를 일으킬 가능성이 있기 때문에, 자바의 최신 버전은 여기에 표시된 코드의 종류 허용하지 않습니다:
공공 정적 무효 메인 (문자열 []에 args를) {// 변수를 정의합니다. int i = 0; // 블록 안에 변수를 만듭니다. for (int i = 0; i <10; i ++) // 해당 변수의 값을 표시합니다. 체계. 아웃. println ("i의 값은:"+ i); // 블록 외부의 액세스가 작동하지 않습니다. 체계. 아웃. println ("i의 값은:"+ i);}
컴파일러가 항상 발에서 자신을 촬영하는 것을 방해하지는 않습니다. 많은 경우 개발자는 변수를 사용하여 결과를 이해하지 못합니다. 예를 들어, 다음 코드는 Java에서 완벽하게 유효합니다.
의 루프 때문에 루프 선언에 대한 내 조건에서 9까지 숫자 0을 표시한다. 시스템에 대한 최종 호출. 아웃. println ()은 일부 개발자가 기대하는 것처럼 0 또는 9가 아닌 10의 값을 표시합니다.