Java 문법 3. Control statement(제어문)

작성일     업데이트:

카테고리:

태그:

Control Statement(제어문)

1. 조건문

조건을 달아 선택적으로 실행시키고자 할 때 사용하는 제어문이다
이때 조건식은 반드시 true 또는 false 의 결과가 나오게 작성하여야 한다


[ if 문 ]

if(조건식1) {
  수행될 문장;
} else if(조건식2) {
  수행될 문장;
} else if(조건식3) {
  수행될 문장;
} else {
  수행될 문장;
}
  • 위와같은 방식으로 사용하며 제일 위에 있는 조건식부터 순차적으로 실행된다
  • 제시된 조건식의 결과가 true 일 때만 { } 안의 문장들을 실행시킨다
  • 여기서 else {}는 앞의 조건식들에 해당하는 경우를 제외한 모든 경우를 뜻한다
  • if문은 여러번 중첩하여 사용이 가능한데 도중에 break;를 만나면 중첩 된 if문중 가장 가까운 if문이 종료된다


[ switch 문 ]

switch(조건식) {
  case 값1 :
    수행될 문장;
    break;
  case 값2 :
    수행될 문장;
    break;
  case 값3 :
  case 값4 :
  case 값5 :
    수행될 문장;
    break;
  default:
    수행될 문장;
}
  • 위와 같은 방식으로 사용하며 if문과는 다르게 switch 조건식은 true/false값이 아닌 정수, 문자, 문자열 값을 반환해야한다
  • 조건식 하나로 많은 경우의 수를 처리할 때 사용한다
  • 조건식의 결과값과 일치하는 case으로 이동하여 그 안의 코드를 실행한다
  • 주의! 각 case 안에 break;가 없다면 switch문이 종료되지 못하고 계속해서 돌며 다른 case들 안의 코드들을 실행하고 break;를 만날때까지 혹은 switch문의 끝까지 계속된다
  • 여러가지 값의 case들이 동일하게 작동해야할 경우 위의 예시중 3번째 case처럼 의도적으로 break;를 생략하여 모두 동일하게 작동시킬 수 있다
  • 만약 조건식의 결과값과 일치하는 case가 없다면 default 안의 코드가 실행된다


2. 반복문 (LOOP 문)

특정 코드들을 반복해서 수행하고자 할 경우 사용
구문 상에 반복되는 구간을 루프(LOOP) 라고 하며, 루프가 있는 문장이라고 하여 루프(LOOP) 문이라고도 한다.


[ for 문 ]

// 1번
for (초기식; 조건식; 증감식) {
  수행될 문장;
}

// 2번
for (자료형 변수명 : 리스트, 배열  ) {
  수행될 문장;
}
  • 정확한 반복 횟수가 정해져 있을 때 주로 사용한다
  • 중첩하여 사용 가능하다
  • 1번의 경우

    • 1회전 : 초기식 확인 후 조건식 확인 -> 조건식이 true면 문장 수행 , false면 수행하지 않음
    • 2회전 : 증감식 연산 후 조건식 확인 -> 조건식이 true면 문장 수행 , false면 수행하지 않음
    • 이후 2회전과 동일하게 동작하고 조건식이 false가 나올 때까지 반복
      => 조건식이 true일 동안 계속 반복되는 구조
  • 2번의 경우
    • List 등의 값을 우측에 넣어주면 해당 List 안의 요소를 처음부터 하나하나 꺼내 좌측의 변수에 대입하고 아래 수행될 문장 쪽에서 값이 대입된 변수를 사용할 수 있다
    • 넣어준 List의 모든 요소를 다 돌고 종료된다


[ while 문 ]

//1번
while(조건식) {
  수행될 문장;
}

//2번
do {
  수행될 문장;
} while (조건식); // 마지막에 세미콜론(;)을 반드시 표기해야 한다.
  • 횟수가 정해지지 않은 반복 처리에 주로 사용한다
  • for 문과 다르게 반복에 대한 조건식만 제시되며 조건식의 결과가 true 일 동안 계속해서 반복한다
  • 중첩하여 사용 가능하다
  • 1번의 경우
    • 조건식 확인 -> true일 경우 문장 수행 -> 다시 조건식 확인 및 이하 동작 동일
    • 조건식의 결과가 false일 경우 종료
  • 2번의 경우
    • do{ } 안의 내용을 일단 한번 실행 후 조건식을 확인한다
    • 조건식이 true 일 경우 다시 반복
    • 조건식이 false 일 경우 종료
    • 무조건 처음 한번은 실행되어야 하는 코드일 경우 사용한다


3. break 과 continue

[ break ]

  • 코드의 실행 흐름에 변화를 줄 수 있다
  • break 문을 만나면 해당 제어문이 강제로 종료된다
  • break를 포함하는 제어문 한 개만 종료시킬 수 있다
    => 중첩구조에 있을경우 제어문 중 범위가 가장 가까운 제어문(= 해당 break가 속해있는) 한 개만 종료시킨다


[ continue ]

  • 반복문의 실행 흐름에 변화를 줄 수 있다
  • 반복할 내용의 중간 생략용으로 이용할 수 있다
  • continue 문을 만나면 그 아래의 수행 문장은 건너뛰고 바로 그 다음 회차의 반복을 실행한다


[ 점프(Labeled) break, continue ]

  • for, while, do-while 문에 사용할 수 있다
  • 한번에 여러 단계의 중첩 반복문을 빠져나가게 할 때 이용할 수 있다
  • break 와 continue 가 한 개의 반복문만 탈출하는 특성을 보완하기 위해 나온 구문
  • 각각 for 구문 앞, while 구문 앞, do 구문 앞에 이름(Label)을 표시해 두고 사용해야 한다
  • 이름(Label)은 기타 변수명처럼 원하는 것으로 설정 가능하다
label이름:  for(초기식; 조건식; 증감식) {
                for(int i = 0; i < 10; i++) {
                  System.out.println(i);
                  if( i == 5 ) break label이름; // i 값이 5가 되면 반복을 종료
                }
            }

댓글남기기