if 문 중첩
선행조건이 꼭 필요할 때 if문을 중첨해서 사용한다
if문을 중첩해서 쓰는 이유
- 선행조건이 있으면 불필요한 조건 검사를 하지 않는다
- 선행조건이 없어도 실행 효율을 위해 의도적으로 중첩해 사용할 수 있다
else 결합 문제
중괄호를 해주냐 안해주냐에 따라서 코드의 의미가 달라짐
#include <stdio.h>
int main(void)
{
int a = 10, b = 20;
if (a < 0)
{ //중괄호를 생략하고 안 하고에 따라서 의미가 달라짐
if (b > 0)
{
printf("ok");
}
} //중괄호를 생략하고 안 하고에 따라서 의미가 달라짐
else
{
printf("ok");
}
return 0;
}
댕글링 else 문제
if문을 중첩해서 사용할 때 뒤따르는 else의 위치가 모호해지면서 생기는 문제
switch ~ case 문
여러 개의 상수식 중 조건식에 해당하는 하나를 골라 실행하는 것
switch(조건식)
{
case 상수식1;
실행문1;
break;
case 상수식2;
실행문2;
break;
default;
실행문3;
break;
}
switch ~ case문 사용할 때의 규칙
- 조건식은 정수식만 사용한다
- 기본적으로 case는 break를 포함한다 ( break는 해당 블록을 탈출하는 데 사용한다 )
#include <stdio.h>
int main(void)
{
int rank = 2, m = 0;
switch (rank)
{
case 1:
m = 300;
break;
case 2:
m = 200;
break;
case 3:
m = 100;
break;
default:
m = 10;
break;
}
printf("m : %d\n", m);
return 0;
}
<주의사항>
- 레이블 (case와 default)
조건식과 일치하는 case의 상수가 없으면 default로 건너뛴다
- default는 마지막에 두어 예외 상황을 처리한다
- break 생략
break는 필요에 따라 생략할 수 있지만 의미가 달라질 수 있다
switch~case 문 ==> if 문으로 바꾸기
'C 언어 > [책 정리] 혼자 공부하는 C언어' 카테고리의 다른 글
반복문 활용 (0) | 2022.12.07 |
---|---|
while문, for문, do ~ while 문 (0) | 2022.12.07 |
if 문 (0) | 2022.12.06 |
그 외 유용한 연산자 (2) (0) | 2022.12.01 |
그 외 유용한 연산자 (1) (0) | 2022.12.01 |