풀스택개발자될거임

[Do it C언어 입문 정리] 8.조건문 본문

C/do it C언어 입문

[Do it C언어 입문 정리] 8.조건문

FullStack_dev178 2022. 12. 23. 11:22

제어문이란?

프로그램의 실행흐름을 제어하는 문법

 

문법

if 조건문 (단일) 

if(조건수식) 명령문;

조건수식이 참이면 명령문을 실행함

 

TMI

조건수식에 0 이외의 값을 넣으면 참으로 인식해서 명령문이 실행됨

만대로 0을 넣으면 거짓으로 인식함

 

그리고 조건수식이 참이면 1로 바뀜 

이걸 이용해서 이런것도 가능함

int a = 1;
printf("%d\n",(a == 1));

결과
1
int a = 1;
printf("%d\n",(a == 3));

결과
0

 

예시

명령문1;
if(조건수식) 명령문2;
명령문3;

조건수식이 참일경우 : 명령문1 -> 명령문2 -> 명령문3

조건수식이 거짓일경우 : 명령문1 -> 명령문3

if 조건문 (복합)

예시

명령문1
if(조건수식)
{
    명령문2;
    명령문3;
}
명령문4;

조건수식이 참일경우 : 명령문1 -> 명령문2 -> 명령문3 - > 명령문4

조건수식이 거짓일경우 : 명령문1 -> 명령문4

 

 

if ~ else ~ 조건문 

만약 조건문이 거짓일때 다른 명령문을 실행하고 싶다면 else 문을 쓰면 된다. 만약 else 문을 쓰지 않는 다면...

int a = 1;
if(a == 1) 명령문1;
if(a == 2) 명령문2;
if(a == 3) 명령문2;
.
.
.
.
.

코딩하기 싫어질거다.

예시

명령문1;
if(조건수식) 명령문2;
else 명령문3;
명령문4;

조건수식이 참일경우 : 명령문1 -> 명령문2 ->  명령문4

조건수식이 거짓일경우 : 명령문1 -> 명령문3 ->  명령문4

수식 연산자

if ~ else ~ 랑 비슷함

결과값 = (조건수식) ? 수식1 : 수식2

조건수식이 참일경우 : 수식1을 결과값에 저장

조건수식이 거짓일경우 : 수식2를 결과값에 저장

예시

int a = 1;
char point;

point = (a == 1) ? 'Y' : 'N';
printf("%c\n",point);

결과
Y

if ~ else if ~ else

if 가 거짓이면 else if 문을 실행함 else if 도 거짓이면 else 문

예시

명령문1;
if(조건수식1) 명령문2;
else if(조건수식2) 명령문3;
else 명령문4;
명령문5

조건수식 1이 참일 경우 : 명령문1 -> 명령문2 -> 명령문5

조건수식 2가 참일 경우 : 명령문1 -> 명령문3 -> 명령문5

조건수식1 ~ 2 가 모두 참일 경우 : 명령문1 -> 명령문2 -> 명령문5 - 둘다 참이면 첫번째 조건문의 명령문만 실행됨

조건수식1 ~ 2 가 모두 거짓일 경우 : 명령문1 -> 명령문4 -> 명령문5

 

switch (if ~ else if ~ else 랑 비슷)

if ~ else if ~ else 랑 비슷함 

명령문1
switch (수식 또는 변수)
{
    case 상수1:
    	명령문2;
        break;
    case 상수2:
    	명령문3;
        break;
    default :
    	명령문4;
        break;
}
명령문5;

"수식 또는 변수" 랑 상수 들을 비교해서 참이면 명령문을 실행함 모두 거짓이면 default 실행

break 를 안쓰면 다른 조건의 명령문까지 실행됨 (안써도 되는 경우도 있음)

 

주의사항

1. 대입 연산자 랑 관계연산자 구분 잘해야됨

if(data = 1) x
if(data == 1) o

2. 세미콜론

if(data == 1); 명령문; X
if(data == 1) 명령문; O