제어문
✒️ 2025-05-15 15:50 내용 수정
수제비 2024 정보처리기사 필기 5판 1권의 내용을 정리
TCPSchool의 내용을 정리
제어문
특정 조건을 만족했을 때 동작하도록 하거나 같은 동작을 반복하도록 만드는 것
- Java의 제어문(조건문, 루프(Loops)), JavaScript의 제어문(제어문), Python의 제어문(제어문)도 참고.
- C는 절차적 프로그램에 속하며, 수 많은 명령문의 흐름을 순차적으로 제어하여 원하는 결과를 얻기 위해서 제어문을 사용한다.
조건문
- 특정 조건을 만족했을 때 동작을 하도록 만든다.
1. if 문
- 조건식을 만족(True)하면 실행문이 작동한다.
if (condition)
{
// 조건문 결과에 따른 실행문
}
2. if-else 문
- 조건식을 만족(true)하면 실행문이 작동하고, 만족하지 않으면(false)
else이후의 실행문이 작동한다.
if (condition)
{
// 결과가 참일 때 실행
}
else
{
// 결과가 거짓일 때 실행
}
- if-else문은 삼항 연산자를 사용하여 간단하게 표현할 수 있다.
조건식 ? 반환값1 : 반환값2
3. if-else if 문
- 더욱 복잡한 조건과 그에 따른 실행문을 설정할 수 있다.
if (condition1)
{
// 결과가 참일 때 실행
}
else if (condition2)
{
// condition 1의 결과가 거짓이고,
// condition 2의 결과가 참일 때 실행
}
4. switch
- if 문과 다르게 비교값(변수/수식)의 결과가 특정 값(조건값)이 나와야 한다.
- break 가 없으면 조건값에 해당하는 case 절 이후의 모든 절에서도 전부 실행되므로 꼭 넣어야 한다.
- 범위가 없기 때문에 break의 유무로 조건값의 범위를 활용할 수 있다.
- defalut : 조건값이 어떠한 case절에도 해당하지 않을 때 실행한다.
- 필수는 아니고 선택 사항이다.
- if문의 else와 비슷한 역할을 한다.
- 특정 값이 들어가기 때문에 if문보다 처리 속도가 빠르다.
- 비교값이랑 조건값의 자료형이 일치해야 한다.
- 사용할 수 있는 자료형 : char, short, int, 열거체
switch (조건값)
{
case value1:
//조건값이 value1일 때 실행
break;
case value2:
//조건값이 value2일 때 실행
break;
defalut:
//조건값이 어떠한 case절에도 해당하지 않을 때 실행
//if문의 else와 비슷함
break;
}
반복문
- 특정 동작을 반복 수행하도록 한다.
1. while 문
- 조건문이 참인 동안 while문 내의 실행문을 반복 수행한다.
while (condition)
{
// 조건의 결과가 true일 때까지 반복적으로 실행
// 조건의 결과를 변경하는 명령문 필요
}
2. do-while
- 명령문을 먼저 1회 실행한 후 조건을 확인한다.
- 조건에 상관없이 무조건 1회 실행해야 하는 명령이 있을 때 사용한다.
do {
// 조건식의 결과가 참인 동안
// 반복 실행할 명령문
}
while (condition);
3. for 문
- 특정 횟수만큼 반복하여 실행할 때 사용하며, 초기식, 조건식, 증감식을 모두 포함한다.
- 증감 연산자는 연산자(Operators)#증감 연산자 참고.
- if (;;) {} 를 사용하면 무한 루프가 된다.
for (initialValue; condition; +/-operator;)
{
// 조건식의 결과가 참인 동안 반복 실행
}
- for 문의 조건문 내의 변수는 for 문이 종료되면 자동 소멸한다.
- 변수를 내부에서 선언하면 내부에서만 사용할 수 있다.
기타 제어문
- 루프(반복) 내에서 사용자가 루프의 흐름을 제어할 수 있도록 한다.
1. continue
- 루프 내에서 해당 루프의 나머지 부분을 건너 뛰고, 다음 조건식으로 넘어갈 때 사용한다.
- 가장 가까운 반복문의 증감식으로 돌아간다.
- 증감식이 없다면 조건식으로 돌아간다.
for (i = 1; i <= 10; i++)
{
if (i % 2 == 0)
{
continue;
}
}
2. break 문
- 루프 내에서 반복문을 종료 시키고, 반복문 다음 위치한 명령문을 실행한다.
- break와 가장 가까운 반복문을 종료 시킨다.
- 루프 결과와 상관없이 루프를 벗어날 때 사용한다.
int a = 0;
// 무한루프
while(true)
{
a++;
if (a > 10)
{
break;
}
}
3. goto 문
- Java의 label(기타 제어문#3. label)과 비슷하게 프로그램의 흐름을 지정된 레이블로 무조건 변경시키는 명령문이다.
- 다른 제어문과 달리 아무런 조건 없이 프로그램의 흐름을 옮기기 때문에 쉽게 사용하다는 장점과 프로그램 흐름을 매우 복잡하게 만든다는 단점이 있다.
- 현재는 디버깅 외에는 거의 사용하지 않는다.