본문 바로가기
  • soobinhand의 기술 블로그
도서/자바 프로그래밍 언어 - James Gosling

[자바 프로그래밍 언어] 10장 흐름제어

by soobinhand 2021. 12. 29.
728x90

10.1     문장과 블록

  • 없음

10.2     if-else

  • 없음

10.3     switch

switch ( 표현식 ) {
	case n : statements
    case m : statements
    
    default : statements
}
  • 표현식은 정수 타입이나 enum 타입 중 하나여야 한다. switch 문의 몸체는 switch 블록이라 하며 case 라벨을 포함할 수 있다. case 라벨은 정수 또는 enum 상수이다. switch 표현식이 case 라벨의 값과 일치한다면 제어는 해당 라벨의 첫 번째 문장으로 이동하고 일치하는 case 라벨을 찾지 못한 경우에는 default 라벨의 첫 번째 문장으로 이동한다. default 라벨도 존재하지 않는다면 switch 문은 종료된다.
  • break 문이 없다면 실행은 default 라벨까지 실행된다.
  • 만약 제어를 다음 case 라벨로 넘겨야 한다면 FALLTHROUGH 주석과 같이 제어가 넘어간다는 것을 주석으로 달아 놓는 것이 좋은 코딩 습관.
  • return 문을 사용하여 제어를 switch 블록 밖으로 넘길 수 있다. 
  • case 라벨에서 문장을 종료시키는 것처럼 switch 문의 마지막 문장도 break나 return 또는 throw로 종료해야 한다.
  • switch 문에서 각각의 case 값은 유일해야 하며 default 라벨은 하나만 존재해야 한다.
  • switch 블록의 첫 문장은 라벨이어야 하며 라벨이 아닌 문장이라면 도달할 수 없는 코드가 된다. 컴파일 X

10.4     while과 do-while

  • 표현식이 false일 때까지 반복하며 표현식이 false가 되면 제어는 while문 이후로 넘어간다.

10.5     for

  • 두 개의 서로 다른 타입인 변수를 초기화하고 싶다면, 변수들을 for문에 선언하지 말아야 한다.
  • 향상된 for문은 컬렉션 클래스나 Iterable 인터페이스를 구현하는 클래스를 반복하는 것을 쉽게 해준다.

10.6     라벨

  • 라벨문을 사용하여 참조할 곳에 이름을 지정할 수 있다.
  • label : statement

10.7     break

  • break문에 라벨을 지정하면 해당 라벨의 문장을 종료할 수 있다.

10.8     continue

  • continue문은 오직 반복문 내에서만 사용 가능. 제어를 반복문 몸체 끝으로 이동시켜 반복을 다시 수행한다.
  • 라벨이 없는 형식의 continue 문은 반복문의 몸체 끝으로 제어를 이동시키며, 라벨이 있으면 라벨이 선언되어 있는 반복문의 끝으로 제어를 이동시킨다.

10.9     return

  • return 문은 생성자를 빠져 나오기 위해서도 사용한다.
  • 이 때 생성자는 반환 타입을 가질 수 없기에 생성자 내에 사용된 return문에는 반환 값을 지정할 수 없다.

10.10     goto 사용 불가

  • 없음
728x90

댓글