문장의 종류
1) 공문 (null statement)
- 아무 것도 하지 않는 문장입니다.
- 단순히 세미콜론(;)만 있는 경우
- 예: while문 안에 아무 작업도 하지 않게 만들고 싶을 때 사용
2) 단문 (simple statement)
3) 복문 (compound statement)
- 조건문이나 반복문에서 여러 문장을 실행하고 싶을 때 반드시 중괄호로 묶어야 합니다.
조건문
조건에 따라 다른 명령을 실행할 수 있는 제어 구조입니다.
단순 if문
- 조건이 참일 경우에만 명령문을 실행하고, 거짓이면 건너뜁니다.
복문일 경우
예제
if (c >= 'a' && c <= 'z')
{
c -= 32;// 소문자를 대문자로
printf("대문자로 바뀌었습니다.\n");
}
- 만약 사용자가 c에 'a'~'z' 사이 소문자를 입력하면,
32를 빼서 대문자로 바꾸고, 메시지를 출력합니다.
- 아스키코드에서 'a' ~ 'z' → 'A' ~ 'Z'보다 정확히 32차이입니다.
if ~ else문
if (조건)
{
명령문1;
}
else
{
명령문2;
}
- 조건이 참이면 명령문1 실행
- 조건이 거짓이면 명령문2 실행
다중 if문 (else if)
if (조건1)
{
명령문1;
}
else if (조건2)
{
명령문2;
}
else if (조건3)
{
명령문3;
}
else
{
명령문4;
}
- 위에서부터 순서대로 조건을 검사해서, 처음 참이 되는 조건만 실행하고 나머지는 건너뜁니다.
- 모든 조건이 거짓이면 마지막 else가 실행됩니다.
중첩 if문
if (조건1)
{
if (조건2)
{
명령문1;
}
else
{
명령문2;
}
}
else
{
명령문3;
}
- if문 안에 또 if문이 들어 있는 구조입니다.
- 조건이 복잡하거나 상황이 나눠져 있을 때 유용하게 사용됩니다.
switch ~ case문
- switch문은 값이 하나일 때 그 값에 따라 실행할 명령을 고를 수 있는 조건문입니다.
switch (수식) {
case 값1:
명령문1;
break;
case 값2:
명령문2;
break;
default:
명령문3;
}
- 수식 결과가 값1이면 명령문1 실행
- 값2이면 명령문2 실행
- 어느 것도 해당하지 않으면 default의 명령문3 실행
- break가 없으면 아래로 계속 실행되기 때문에 반드시 넣는 것이 좋습니다.
if문 vs switch문 비교
처리 가능한 데이터형 |
char, int, float, double |
char, int만 가능 |
범위 조건 |
처리 가능 |
처리 어려움 |
두 변수 비교 |
가능 |
불가능 |
명령 코드 수/실행 속도 |
비교적 느림, 비효율적 |
빠름, 효율적 |