검수요청.png검수요청.png

제어문

해시넷
이동: 둘러보기, 검색

제어문(control flow statements)은 프로그램의 흐름을 제어하는 경우에 사용하는 실행문으로, 조건문, 반복문, 분기문 등이 포함되어 있다.

조건문[편집]

조건문은 말 그대로 어떠한 조건에 참(true)인지 거짓(false)인지에 따라 결과가 달라져 나오는 명령문이다. 조건문 안에서도 if문과 switch문으로 나눌 수 있다. if문에서도 {if, else if, else}로 구성되어 있고, switch문은 {switch, case, default, break}로 구성되어 있다. if문과 switch문은 둘 다 조건문이지만 사용법과 구조가 자체가 다르다.

if[편집]

if문은 조건식 결과에 따라서 명령문 실행 여부가 결정되는 데, 조건식에는 참 또는 거짓의 값을 산출할 수 있는 연산식이나 불린 자료형(boolean)이 올 수 있다.[1]

if(조건식){
   System.out.println("조건식이 참일 경우 실행");
 }

if문의 조건식이 참이면 if문의 명령문이 실행되고, 조건식이 거짓이면 명령문의 거짓인 else 구문에서 실행되며 전체 if문에 벗어난다.

if(조건식){
  조건식이 참일 경우 이곳에서 실행;
}else{
  조건식이 거짓일 경우 조건식의 false인 이곳에서 실행
}

조건식이 하나가 아닌 여러 개인 if문도 있다. if문 블록 끝에 else if문을 붙이면 되는데, else if문의 수는 제한이 없고 여러 개의 조건식 중 참인 조건식에만 실행되고 전체 if문을 벗어난다. 마지막에는 else문을 추가하는데 else문은 위에 if-else문 내용과 동일하게 모든 조건식이 거짓인 경우에 실행되고 마찬가지로 전체 if문을 벗어나게 된다.

if(조건식1){
  조건식1이 참일경우 이곳에서 실행된다.
}else if(조건식2){
  조건식2이 참일경우 이곳에서 실행된다.
}else if(조건식3){
  조건식3이 참일경우 이곳에서 실행된다.
}else if(조건식4){
  조건식4이 참일경우 이곳에서 실행된다.
}else{
  모든 조건식이 거짓일 경우 이곳에서 실행된다.
}

switch[편집]

switch문은 if문과 마찬가지로 조건 제어문이다. 위에 내용인 if else if문과 유사하지만 switch문은 변수의 값에 따라 코드를 실행할 수 있게 제어할 수 있다. if문은 조건식이 true, false 두 가지밖에 없기 때문에 경우의 수가 많을수록 else if를 반복적으로 계속 추가해야 하므로 코드가 복잡해지지만, switch문은 변수의 값에 따라서 실행문이 결정된다. 즉, 변숫값에 따라 실행문이 선택되기 때문에 조건식이 많아질수록 더 복잡해지는 if문보다 코드가 간결하고 가독성이 좋은 장점이 있다.[2]

switch(변수){
   case 1:
      실행 코드;  
      break;
   case 2:
      실행 코드;  
      break;
   case 3:
      실행 코드;  
      break;
   case 4:
      실행 코드;  
      break;
   default:
      실행코드;
      break; 
}

만일 변숫값에 동일한 case가 없으면 default로 가서 실행된다. 그리고 default는 생략이 가능하다.

case 끝에 break가 있는 이유는 다음case를 실행하지 말고 switch문을 빠져나가기 위함이므로 break가 없다면 다음 case가 연달아 실행되는데 이때는 case 값과는 상관없이 실행된다.

반복문[편집]

반복문은 주어진 조건이 충족이 될 때까지 반복적으로 문장을 수행 시키는 명령문이다. 프로그램을 처리하는 부분에 있어서 반복적인 형태가 많다. 그렇기 때문에 가장 많이 사용되는 제어문 중 하나다. 반복문은 for문, while문, do-while문으로 나누어져 있지만 do-while문은 while문에서 파생된 것이라 사실상 반복문에서 가장 많이 쓰이는 것은 for문과 while문이라 볼 수 있다.[3]

for[편집]

for문은 반복문의 대표라고 할 수 있을 만큼 가장 많이 사용되는 반복문이다.

for(초기화식; 조건식; 증감식){
      실행문;
}

위에 for문에서 초기화식이 가장 먼저 실행되고, 조건식이 참이면 실행문을 실행시킨다. 만일 조건식이 거짓이 나오면 for문은 실행하지 않고 끝나게 된다. 초기화식은 조건식, 실행문, 증감식에서 사용할 변수를 말 그대로 초기화를 하는 역할을 한다. 실행문이 모두 실행되면 증감식을 실행시키고 다시 조건식으로 가서 참이 나오면 다시 실행문을 실행시킨다. 이 순으로 계속 실행문이 반복적으로 실행되고 조건문이 거짓(false)이 되면 for문은 종료하게 된다.[4]

while[편집]

for문이 반복되는 횟수가 정해져 있다면, while문은 for문과 다르게 조건식이 참일 경우에 계속해서 반복하는 반복문이다. 조건식이 거짓이 나온다면 반복 실행을 멈추고 while문을 종료 하게 된다.

while(조건식){
   실행문;
}

wile문에 조건식이 참일 경우 for문 처럼 실행문을 실행하고 다시 조건식으로 돌아가 참인지 거짓인지 평가한다. 여기서 또 참이 나오면 다시 실행문을 실행시키고 다시 조건문을 평가한다. 이 순으로 반복적으로 실행이 되는데 조건문이 결국 거짓이 나오면 while문을 종료한다.[5]

do-while[편집]

while문은 조건식에 의해 반복적인 실행을 한다. do-while도 이점은 while문과 동일하다. 하지만 while 문은 조건식이 참이지 않으면 아예 실행이 되지 않지만 do-while문은 조건이 충족되지 않아도 무조건 한번은 실행되는 점에 있어서 큰 차이점이 있다.

do{
   실행문;
}while(조건식);

위에 do-while문에서 실행문을 최소 실행한 뒤에 조건문이 참인지 거짓인지 평가한다. 조건문이 참일 경우 다시 실행문을 실행하고 또 다시 조건문을 평가한다. 이렇게 실행문을 최초 실행 후 조건문에 충족되게 반복적으로 실행한다. 그리고 조건식이 거짓가 될 경우 do-while문을 종료한다. 조건식이 참인지 거짓인지에 따라 반복적으로 실행되는 점은 while문과 동일하다.[6]

분기문[편집]

분기문은 조건문과 반복문에 중간에서 주어진 조건의 흐름을 바꿀 수 있는 구문이다.

break[편집]

break문은 for문, while문 등 반복문을 실행 중지할 때 사용한다.

for(조건식1){
   실행문;
   if(조건식2){
      break;
   }
}

예를 들어 조건식1에 충족되는 for문이 반복 실행 중에 있어서 조건식2에 충족되어 break문이 사용되면 for문은 종료된다.

continue[편집]

continue문은 반복문에만 사용되는데, 해당 반복을 건너뛰는 역할을 한다. 즉, 그 다음 반복은 진행된다. 반복을 건너 뛸 뿐 반복문이 종료되는 것은 아니다.

for(조건식1){
   실행문;
   if(조건식2){
      break;
   }
}

예를 들어 조건식1에 충족되는 for문이 반복 실행 중에 있어서 조건식2에 충족되어 continue문이 사용되면 조건식2에 맞는 실행문만 실행되지 않는다. 그리고 그 뒤로는 계속 조건식1에 맞게 반복 진행된다.

각주[편집]

  1. (Chapter 3 조건문)2.if문을 써보자〉, 《티스토리》, 2019-06-17
  2. 이나우, 〈제어문이란?〉, 《티스토리》, 2020-12-29
  3. (Chapter4 반복문)1.반복문이란?〉, 《티스토리》, 2019-06-21
  4. (Chapter 4 조건문)2.for문을 알아보자〉, 《티스토리》, 2019-06-28
  5. 코딩팩토리, 〈while문 사용법 & 예제 총정리〉, 《티스토리》, 2019-07-23
  6. 아이씨뱅큐, 〈반복문(2)-while문/do while문〉, 《네이버 블로그》, 2020-07-13

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 제어문 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.