C에서는 동작하는 과정을 나눠지는 기능으로 제공하는 '조건문'이 있다.

 참과 거짓으로 처리하는 if문과 특정 값에서 이동하는 switch문이 있다.

 

 if문

 if문은 if( 조건 ) 으로 구성되며, 조건이 참(0이외의 값)과 거짓(0)으로 적용된다.

1
2
3
if( a ){
 // a가 1이상일경우.
}
cs

 

이렇게 되면, // a가 1이상일 경우에 관련된 동작을 작업할 수 있다.

조건에 맞지 않을 경우엔 else을 사용한다.

1
2
3
4
5
if( a ){
 // a가 1이상일경우.
}else{
 // a가 0일 경우.
}
cs

 

여기서 조건이 맞지 않았지만, 다른 조건일때 처리하는 방법으론 else뒤에 if(조건)을 넣는다.

1
2
3
4
5
6
7
if( a ){
 // a가 1이상일경우.
}else if( b ){
 // a가 0이지만, b는 1이상일 경우.
}else{
 // a와 b가 모두 다 0일 경우.
}
cs

 

여기서 이런 경우가 있을 수 있다.

 a가 1, 2, ,3 ,4가 될 경우가 있다고 해보자.

그러면, if문을 사용할 경우엔 다음과 같아진다.

1
2
3
4
5
6
7
8
9
if( a == 1 ){
 // a가 1일때
}else if( a == 2 ){
 // a가 2일때
}else if( a == 3 ){
 // a가 3일때
}else if( a == 4 ){
 // a가 4일때
}
cs

 

이럴때, if else로 조건문을 매번 확인해서 이동하는 것이 아니라.

특정 값에만 이동하도록 만드는 방법이 있는데.

그것이 바로 switch문이다.

 

switch문은 다음과 같이 적용된다.

1
2
3
4
5
6
7
8
9
switch( 값 ){
case 특정값:{
    break;
}
default:{
    // 값이 프로그래머가 정의 내리지 않는 값일 경우.
    break;
}
}
cs

 

이걸 전체적으로 다 적용한다면, 다음과 같이 된다.

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
 
#include <stdlib.h>
 
int main(int argc, char** argv){
    unsigned int a = 0;
    unsigned char steps = atoi(argv[1]);
 
    if(steps > 3){
        a = 100;
    }else{
        switch(steps){
        case 0:{
            a++;
            break;
        }
        case 1:
        case 2:{
            a = 5;
            break;
        }
        case 3:{
            a = 15;
            break;
        }
        }
    }
    printf("a: %d", a);
    return 0;
}
 
cs

 

 

 이렇게 하면,

 실행파일 뒤에 추가적으로 넣은 argv의 값을 보고(숫자가 들어가야된다.), 그 값에 맞춰서 a의 값을 정하여 값이 출력하게 된다.

 

'프로그래밍 > C 언어' 카테고리의 다른 글

[C] 연산자  (0) 2024.02.16
[C] 상수와 변수  (0) 2024.02.15
[C] 기본적으로 지원해주는 출력  (0) 2024.02.14
[C] 기본 구조  (1) 2024.02.13
Posted by JunkMam
,