>  기사  >  Java  >  JAVA 문 태그의 합법적인 사용과 {} 문 블록의 용도는 무엇입니까?

JAVA 문 태그의 합법적인 사용과 {} 문 블록의 용도는 무엇입니까?

高洛峰
高洛峰원래의
2017-01-22 16:42:241467검색

예를 들어 다음과 같은 코드를 작성합니다.

int i; 
{ 
int j=1; 
i=j; 
}

이 코드가 클래스 정의 영역에 존재하는 경우 클래스 속성의 내용을 초기화하는 데 사용되는 일반 명령문 블록임을 알 수 있습니다. . 인스턴스화될 때 호출되는 클래스에 있으며 일부 메소드가 실행될 수 있습니다.
많은 경우 싱글톤 및 기타 모드에서 사용됩니다. 복잡한 클래스의 콘텐츠를 초기화하기 위해 정적을 추가하면 로딩 시퀀스로 인해 발생하는 일부 런타임 예외를 피할 수 있습니다.
그런데 이 코드가 메소드에 나타나면 어떻게 될까요?
기본적으로는 전혀 말이 되지 않습니다. 이전 생각에는 코드를 묶는 형식일 뿐, 다른 것은 아무것도 없었습니다.
오늘은 "문 태그"와 관련된 코드를 작성했습니다:

label17: int i; 
int j; 
ThreadGroup[] arrayOfThreadGroup; 
if (flag) 
break label17; 
return 0;

":" 위치에서 "토큰 ":"의 구문 오류, {이 토큰 이후에 예상됨" 예외가 발생했습니다.
즉, 코드가 한 줄에 존재할 수 없는 경우(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는 어디에나 있을 수 있습니다. 앞으로는 None을 사용할 수 없습니다. 오류입니다. 프롬프트는 다음과 같습니다.
이 줄에 여러 마커가 있습니다.
- x를 변수로 확인할 수 없습니다.
- 토큰 "int"에 구문 오류가 있습니다. 이 토큰을 삭제하세요.
두 가지 올바른 형식이 있습니다.

int x = 0; 
label13: x = 0; 
或者 
label13:{ int x = 0;}

그래서 나는 이전의 오해가 for(){} 및 if(){}와 같은 사용법에서 논리적 if() 및 문 블록{}이 두 개의 독립적인 구문이어야 한다는 것이라고 추측했습니다.

JAVA 문 태그의 보다 합법적인 사용과 {} 문 블록의 사용에 대해 알아보려면 PHP 중국어 웹사이트에서 관련 기사를 참고하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.