JAVA 기초 문장 라벨의 합법적인 사용과 {} 문장 블록은 도대체 무슨 소용이 있습니까?
1609 단어 문장 레이블
int i;
{
int j=1;
i=j;
}
만약에 이 코드가 클래스 정의 구역에 존재한다면 우리는 그것이 일반적인 문장 블록으로 클래스 속성을 초기화하는 데 사용되는 내용임을 알고 클래스가 실례화될 때 호출되며 그 안에서 몇 가지 방법을 실행할 수 있다.많은 실례에서 이것은 단일 모드에 사용되기 전에static를 추가하여 복잡한 클래스 초기화 내용을 위해 불러오는 순서로 인한 운행 기간 이상을 피할 수 있다.그런데 이 코드가 방법에 나타나면?그것은 기본적으로 조금의 의미도 없다.내 자신의 예전 생각에서, 그것은 코드를 묶은 형식이었고, 다른 것은 없었다.오늘은'문구 라벨'과 관련된 코드를 조금 썼습니다
label17: int i;
int j;
ThreadGroup[] arrayOfThreadGroup;
if (flag)
break label17;
return 0;
":"위치에 이상이 발생했습니다. "Syntax error on token":", {expected after this token". 즉, 코드가 일방통행으로 존재할 수 없을 때(int i는 방법체 내부에 명확한 실례화\부치 위치가 있어야 함), label17은 용어 블록을 표시해야 합니다.정확한 형식은:
label17: {
int i;
int j;
ThreadGroup[] arrayOfThreadGroup;
if (flag)
break label17;
return 0;
}
:
label17:
int i;
int j;
ThreadGroup[] arrayOfThreadGroup;
if (flag){
break label17;
return 0;}
잘못된 용법을 다시 봅시다
label13: int x = 0;
탭 뒤에 기본 단행문 블록이 있습니다. 이 x는 이후의 어느 위치에서도 사용할 수 없습니다. 오류입니다.힌트는 다음과 같습니다. Multiple markers at this line - x cannot be resolved to a variable - Syntax error on token "int", delete this token의 정확한 형식은 두 가지입니다
int x = 0;
label13: x = 0;
label13:{ int x = 0;}
그래서 이전의 사고 오류는 for(){},if(){}와 같은 용법에서 논리if()와 문장 블록 {}는 서로 독립된 두 가지 문법이어야 한다고 추측했다.