ZER0 D0G의 잡동사니 블로그

5. 만약... 만약에..., 제어.... 제어를 해보자 본문

강좌/c언어 강좌

5. 만약... 만약에..., 제어.... 제어를 해보자

ZER0 D0G 2021. 1. 10. 18:46

여러분들은 살다가 제어가 불가능한 순간이 많을 것이다.

필자도 그렇다.

하지만 컴퓨터는 그렇지 않다.

아니 그럼 안된다.

 

그런 기념으로 오늘은 컴퓨터를 제어하는 제어문에 대해 araboja.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main()
{
    int input, an_input; //변수 정의 영역
    
    printf("input your value: ");
    scanf("%d"&input);          //입력 받는 영역
 
    printf("\n input your another value: ");
    scanf("%d"&an_input);        //다른값 입력 영역
 
    if(input < an_input)
    {
         printf("the an_input is bigger then input! \n");
    }
 
    return 0;
}
cs

 

를 따라 쳐보자 그리고 처음 입력 받는 부분을 12, 나중에 입력받는 값을 14로 해보자

첫번째 상황

와우! 프로그램이 14가 더 크다라고 말했다!

 

그럼 한번 전에 입력 받는 값을 14 후에 입력 받는 값을 12로 해보자.

 

두번째 상황

 

우리의 예상대로 아무것도 뜨지 않는다!

 

그럼 코드 분석 들가자 야들아

 

1. if문

 

if 만약에라는 뜻이다.

과연 프로그래밍에서도 같은 뜻일까?

그렇다.

 

if(input < an_input)

{

}

의 뜻은 만약에 input보다 an_input의 값이 더 클시 {}사이의 명령어를 실행한다는 의미이다.

 

그리고 {}안의 명령어를 다 실행 했을시에 빠져 나오게 된다.

 

그래서 위의 값에서 첫번째 상황에는 더 크다고 출력하고 두번째 상황에선 아무것도 뜨지 않은것이다.

 

그럼 input과 an_input 사이 <는 뭘까?

 

2. 비교 연산자와 논리 연산자

<는 여러분들이 초등 수학을 제대로 공부했다면 이미 눈치챘을것이라 믿는다.

맞다 두 숫자중 뭐가 더 큰 숫자인지 비교한다.

마찬가지로 이걸 어려운 말로 비교 연산자라고 한다.

 

비교 연산자 쓰임새
== 둘의 숫자가 같은지 확인한다
!= 둘의 숫자가 다른지 확인한다
>, < 뭐가 더 작고 뭐가 더 큰가?
>=, <= 이상, 이하

간단히 요약 하자면 이렇다.

 

여기서 과제 1. 비교연산자 다 써봐라

자신의 손으로 비교 연산자를 다 써보고 그게 정상작동 되는지 확인하는것 만큼 재미있는일이 없다.

ㄹㅇ 믿어 보셈

 

근데 우린 여기서 뭔가 의문이 생긴다.

과연 if 문 사이에 두개의 식을 두고 계산하는것은 불가능할까?

 

여기서 가능충이 등판할때다.

나와줘요 가능충!

 

두둥!

바로 논리 연산자이다.

 

논리 연산자 쓰임새
&&
(AND)
두개의 식 모두 참일 경우에만 참
||
(OR)
두개의 식 모두 거짓일때만 거짓
!
(NOT)
값을 역전 시킨다(ex: a가 참일경우 거짓)

이해가 잘 안간다고? 여기 예시를 들어 보겠다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int main()
{
    int a, b, c, d;
    a = 12;
    b = 14;
    c = 13
    d = 15
    if(a < b && c < d) 
    {
        printf("both are ture!")
    } 
}
 

작성후 실행해봐라

여기서 과제 2. 위의 논리 연산자를 모두 사용해보아라

 

3. else, else if

여기서 뭔가 불완전 하다는 생각을 할것이다.

바로 맨위의 프로그램이 불완전하다는 것을....

 

input이 an_input보다 작을때는 잘 출력하면서

그 반대는 왜 그냥 무시 해버리는가?

 

이걸 위해 우린 else를 배울것이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
 
int main()
{
    int input, an_input; //변수 정의 영역
    
    printf("input your value: ");
    scanf("%d"&input);          //입력 받는 영역
 
    printf("\n input your another value: ");
    scanf("%d"&an_input);        //다른값 입력 영역
 
    if(input < an_input)
    {
         printf("the an_input is bigger then input! \n");
    }
    else
    {
        printf("the input is bigger then an_input! \n");
    }
 
    return 0;
}
 
cs
 

이를 입력하고 실행 해보자 그리고 첫번째 상황과 두번째 상황을 다시 실행 해보고 결과 값을 관측해 보라

와우! 이젠 프로그램이 반대의 경우도 출력해주는것을 볼수 있다!

대단하다! 이젠 여러분들은 얼추 프로그램을 다룰수있다.

 

else if를 써보자

 

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
#include <stdio.h>
 
int main()
{
    int input = 0//변수 정의 영역
     
    printf("input your value: ");
    scanf("%d"&input);          //입력 받는 영역
 
   
    if(input == 12)
    {
         printf("input is 12 \n");
    }
    else if(input == 15)
    {
        printf("input is 15 \n");
    }
    else if(input == 666)  //혼틈 상식, 666은 악마의 숫자다. 
    {
        printf("input is 666\n");
    }
    else
    {
        printf("뇌절 금지");
    }
    return 0
}
 
cs

과제 3. 이거 실행하고 각각 값을 넣어본뒤 실행값 관측해라

 

과제 4. 친구랑 가위바위보를 할수있는 프로그램을 만들어 보아라

 

끝.

Comments