◎ 제어문 (조건문, 반복문)

  - 지금까지 코드의 실행 흐름이 무조건 위에서 아래로 한 문장씩 순차적으로 진행되었지만, 때로는 조건에 따라 문장을 건너띄고, 때로는 같은 문장을 반복해서 수행해야할 때가 있다. 이처럼 프로그램의 흐름(flow)을 바꾸는 역할을 하는 문장들을 제어문이라고 한다.

  - 조건문은 조건에 따라 다른 문장이 수행되도록 하고, 반복문은 특정 문장들을 반복해서 수행한다.

 

1. 조건문 (if, if-else, if-else if)

  - 조건문은 조건식과 문장을 포함하는 블록{}으로 구성되어 있으며, 연산결과에 따라 실행할 문장이 달라져서 프로그램의 실행 흐름을 변경할 수 있다.
  - 조건문은 if문과 switch문 두가지가 있으며 주로 if문이 많이 사용된다.

 

   1-1) if문

    - if문은 가장 기본적인 조건문이며, 조건식과 괄호{}로 이루어져 있다.

if(조건식) {
   // 코드
}
==> 만일 if조건식이 참이라면 괄호{} 안의 문장들을 수행하라.
① 조건식
   - 조건식이란 참과 거짓을 판명할 수 있는 식
   - if문에 사용되는 조건식은 일반적으로 비교연산자와 논리연산자로 구성된다.
   - 조건식을 작성할 때 실수하는 것이 등가비교연산자(==) 대신 대입연산자(=)를 사용하는것 (X 주의할 것)

② 블록{} - 괄호{}를 이용해서 여러 문장을 하나의 단위로 묶을 수 있는데 이것을 블록이라 한다.
   - 블록 { 로 시작해서 } 로 끝나는데, } 다음에 ;을 붙히지 않는 것에 주의하자.

   1-2) if-else

if(조건식) {
  // 조건식이 참(true)일 때 수행될 문장들
}
else {
  // 조건식이 거짓(false)일 때 수행될 문장들
}

   1-3) if-else if

if (조건식 1) {
// 조건식 1이 참(true)일 때 수행될 문장들
}
else if (조건식2) {
// 조건식1이 거짓(false)이고 조건식 2가 참(true)일 때 수행될 문장들
}
else if (조건식3) {
// 조건식1,2가 거짓(false)이고 조건식3이 참(true) 일 때 수행될 문장들
}
else {
// 조건식1,2,3이 모두 거짓일 때 수행될 문장들
}

   1-4) 중첩if문

if (조건식1) {
// 조건식1이 참(true)일 때 수행될 문장들
      if (조건식2) {
      // 조건식1,2가 모두 참(true)일 때 수행될 문장들
      }
      else {
      // 조건식1은 참(true)이지만 조건식2가 거짓(false)일 때 수행될 문장들
      }
}
else {
// 조건식1이 거짓(false)일 때 수행될 문장들
}

2. switch 문

  - if 문은 조건식의 결과가 참과 거짓 두가지 밖에 없기 때문에 경우의 수가 많아질수록 else if를 계속 추가해야 된다.
조건식이 많아져서 복잡해지고, 여러개의 조건식을 계산하므로 처리시간도 많이 걸린다.
  - 이러한 if문과 달리 switch 문은 단 하나의 표현식으로 많은 경우의 수를 처리할 수 있고 표현도 간결하므로 알아보기 쉽다.

 

switch 문 예시)

switch(표현식) {
   case 값1:
   // 표현식의 결과가 값1과 같은 경우 수행될 문장들
      break;
   case 값2:
   // 표현식의 결과가 값2와 같은 경우 수행될 문장들
      break;
   default:
// 표현식의 결과와 일치하는 case 문이 없을 때 수행될 문장들
      break;
}

① 표현식을 계산한다.
② 표현식의 결과와 일치하는 case문으로 이동한다.
③ 이후의 문장들을 수행한다.
④ break 문이나 switch 문의 끝을 만나면 switch문 전체를 빠져나간다.

 

3. 반복문 for, while, do-while

  - 반복문은 어떤 작업이 반복적으로 수행되도록 할 때 사용되며, 반복문의 종류로는 for문, while문 그리고 while문의 변형인 do-while문이 있다.
  - for문이나 while문에 속한 문장은 조건에 따라 단 한번도 실행이 안될 수 있으나, do-while은 최소한 한번의 수행이 보장된다.

 

3-1) for문

  - for문은 반복 횟수를 알고 있을 때 적합하다.

for (초기식; 조건식; 증감식) {

}
① 초기식
  - 반복문내부에 사용될 변수를 초기화하는 부분이며 처음에 단 한번만 수행된다.
② 조건식
  - 조건식의 값이 참이면 반복을 계속하고, 거짓이면 반복을 중단하고 for문을 벗어난다.
  - 조건식이 잘못 작성되면 블록{} 내의 문장이 한번도 수행되지 않거나 영원히 반복되는 무한루프(infinite loop)에 빠지기 쉬우니 주의해야한다.
③ 증감식
  - 반복문을 제어하는 변수의 값을 증가 또는 감소시키는 것이다.
  - 매 반복마다 변수의 값이 증감식에 의해서 점진적으로 변하다가 결국 조건식이 false가 되어 for문을 벗어나게 한다.

for (int i = 0; i < 5; i++){
   // 반복 수행될 문장들
   // 5번 반복 (i == 0,1,2,3,4)
}

* 향상된 for문 (enhanced for statement)
- 배열(Array)와 컬렉션(Collection)에 저장된 요소에 접근할 때 기존보다 편리한 방법으로 처리할 수 있도록 for문의 새로운 문법이 있는데 이를 향상된 for문이라 한다.

for(타입 변수명 : 배열 또는 컬렉션) {
}

- 위의 문장에서 타입은 배열 또는 컬렉션의 요소의 타입이어야 한다.
- 배열 또는 컬렉션에 저장된 값이 매 반복마다 하나씩 순서대로 읽혀서 변수에 저장된다.

3-2) while문

while (조건식) {
   // 조건식이 참일 때까지 반복 수행될 문장
}
- for문에 비해 while문의 구조는 간단하며 if문처럼 조건식과 블록만으로 이루어져 있다.
- while문은 조건식이 참(true)일 동안, 즉 조건식이 거짓이 될 때까지 블록내의 문장을 반복한다.
반복횟수가 정해져 있지 않을 때 사용하기 좋다.

3-3) do-while

do{
  // 조건식의 결과가 참(true)일 때 수행될 문장들을 적는다.
  // 단, 한번은 무조껀 실행된다.
}while(조건식);
- do-while문은 while문의 변형으로 기본적인 구조는 while문과 같으나 조건식과 블록의 순서를 바꿔놓은 것이다.

3-4) break, continue

  - break문은 자신이 포함된 가장 가까운 반복문을 벗어나며 주로 if문과 함꼐 사용되어 특정 조건을 만족하면
반복문을 벗어나도록 하게 하는 예약어이다.

for (int i = 0; i <= 10; i++){
   if (i == 3){
      break;
   }
   print(i + " ");
}
결과 : 0,1,2

 

for (int i = 0; i < 5; i++){
   for (int j = 0; j < 5; j++){

   }
   if (flag){
      break;
   }
}
- continue 는 반복문 내에서만 사용할 수 있으며 반복이 진행되는 도중에 countinue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.
- for문의 경우 증감식으로, while문과 do-while의 경우 조건식으로 넘어간다.

for (int i = 0; i < 5; i++){
   if (i == 3){
      countinue;
   }
   print(i + " ");
}
결과 : 0,1,2,4

'개발도전하기 > Java 기초' 카테고리의 다른 글

Java 기초 강의 4일차  (0) 2022.07.01
Java 기초 강의 2일차  (0) 2022.06.13
Java 기초 강의 1일차  (0) 2022.06.10
복사했습니다!