반응형

printf("Welcome, Let's C Language.");  // 초등학생도 쉽게 이해시켜주는 C언어 글을 포스팅합니다.

 

안녕하세요. 비전공자 출신 SW Test 엔지니어 Crush on Study입니다. 

이번 글에서는 조건에 따라 다른 화면을 출력시킬 수 있도록 해주는 '조건문'에 대해 배워보겠습니다.

 

Q. 먼저 이전 시간에 배운 내용을 잠깐 복습해봅시다.

A. 1) 주석처리에 대해 배웠습니다.

- 주석은 컴파일할 때 처리되지 않는 부분으로 100이면 100이 주석을 통해 소스코드에 대한 설명란으로 활용하고 있다 했습니다. 

 

2) \n (개행)에 대해 배웠습니다.

printf("안녕하세요. 저는 Crush on Study입니다.\n");
printf("잘 부탁드립니다.");

이런 소스코드가 주어졌을 때, 출력되는 예상 값은 

안녕하세요. 저는 Crush on Study입니다.

잘 부탁드립니다.

여야 합니다.  왜냐? \n이 적혀있기 때문입니다.

 

* 배열에 대해서도 간단히 짚어봤지만 배열은 패스하도록 하겠습니다. 추후에 자세히 다룰겁니다.

 

3) %s 형식지정자에 대해 배웠습니다.

- %c는 문자 하나만을 주고받는 형식지정자지만 %s는 문자 하나뿐만 아니라 문자열도 주고받는 형식지정자라 하였습니다. 따라서, %s가 %c보다 더 널리쓰인다고까지 배웠습니다. 그리고 이에 대응하는 자료형 타입은 char입니다.

 

 

딱 보고 기억 나는게 없다. 하면 바로 이 전글을 참고하세요.

https://crush-on-study.tistory.com/208

 

[C언어] #2. 주석 처리와 신상 정보 프로그램 구현하기

printf("Welcome, Let's C Language."); // 초등학생도 쉽게 이해시켜주는 C언어 글을 포스팅합니다. 안녕하세요. 비전공자 출신 SW Test 엔지니어 Crush on Study입니다. 이번 글에서는 주석 처리에 대한 소개와..

crush-on-study.tistory.com

조건문 소스코드

// # 3. 조건문 강의입니다. 

#include <stdio.h>

int main()
{   
    int choice=1;
    printf("Welcome to True or no.\n");
    printf("Let's check your truth.\n");

    printf("Are you MoSol? : ");
    scanf_s("%d",&choice);

    if (choice==1)
    {
        printf("Yes i respect you. wish your happy Mosol Life.\n");
        return 0;
    }

    else
    {
        printf("ok, you just Mosol.\n");
        return 0;
    }

	return 0;
}

소스코드들을 하나씩 살펴보겠습니다. 이제 대충 틀은 잡힙니다. printf, scanf_s를 사용하기 위해 전처리구문에 선언한 stdio.h 헤더파일. 그 후, 함수를 실행할 공간인 main함수를 잡고, 그 안에 소스코드를 입력하는 것이였죠.

근데 오늘 새로운 개념을 보게 되었습니다.

1. if
어원 그대로 if는 '만약에' 라는 뜻을 담고 있습니다. 공교롭게도 지금 태연 만약에 듣는 중인데 개띵곡이니까 들으러가십시오.
아무튼 if를 선언하면 옆에다가 이제 조건식을 적어줘야 합니다. 

직관적으로 봐도 if (choice==1) 의 구문을 보면 1을 선택할 때, 아래 { } 사이에 적힌 코드가 실행되도록 하는 것 같습니다. 그렇죠? 만약 위에서 choice로 1번을 입력받았다면, Yes i respect you. wish your happy Mosol Life.
이 문구가 출력될 것입니다.

자, 근데 바로 아래에 else 라는 명령어가 보입니다. 새로 보는 애군요. 근데 얘는 if처럼 옆에 따로 조건식이 없습니다. 

2. else
자, else의 뜻은 if에서 적은 조건문을 제외한 나머지에 해당하는 경우에 else의 몸통 {   } 안에 들은 내용을 수행해라. 이겁니다. 만약 위 소스코드에서 choice == 1이 아닌 0,2,27427,16,-273,...... 이런 값들을 적었다면 if 구문에 있는 애들은 수행을 안하고 else 구문에 있는 애들을 수행합니다.

출력 화면

네, 1이 아닌 다른 값을 아무거나 넣었더니 저보고 모솔이랍니다. 근데 저 결혼했는데 ㅋ.ㅋ

추가로 여기 소스코드엔 없지만 else if도 한번 보겠습니다.

else if는 옆에 조건식이 적혀있습니다. 어려운 개념은 아닙니다. if 조건식 이외에도 추가로 적어줄 조건문이 있다면 else if를 여러번 반복해서 써도 됩니다. 혹은 그냥 else 생략하고 if (조건식1) , if (조건식2) , if(조건식3)....  else  이런식으로 해도 됩니다.

 

근데 여러분. 만약 조건이 많은 프로그램을 구현해야할 경우, if 노가다를 하는게 여간 귀찮은게 아닙니다. 실행속도를 고려할 때도 그렇구요. 그래서 오늘 추가로 공부해볼 개념이 '논리 연산자'입니다.

 

우리가 보통 수학 공부할 때,  + - * / 같은 사칙연산을 마주한적이 많을거에요. 이런 사칙연산자를 '산술 연산자' 라고 합니다. 계산에 관련된 연산자입니다.  논리 연산자는 위의 소스코드에서도 잠깐 봤겠지만 '==' 같은 등호를 논리연산자라 합니다. 

즉, A == B 라는 말은 A와 B가 같다는 말입니다. 

 

Q. =랑 다른가요?

A. 같습니다. 근데 뒤에 나올 논리연산자들을 보면 다 기호가 1쌍(2개씩)을 이루고 있어서 그냥 ==로 똑같이 1쌍으로 통일하자~ 라는 의미에서 같게 적용된거라 보시면 됩니다.

  의미 예시
1. == 일치한다. A==B
A랑 B가 같다.
2. != 일치하지 않는다. A!=B
A랑 B가 다르다.
3. && AND 연산자. 앞의 조건식, 뒤의 조건식 둘다 만족해야 한다. A==1 && B ==5
A가 1, B가 5인 경우에만 구문을 실행해라.
4. || OR 연산자. 앞의 조건식 혹은 뒤의 조건식 둘 중 하나만 만족해도 된다. A == 1 || B == 5
A가 1이거나 B가 5면 구문을 실행해라.
이 경우는 둘다 1,5여도 실행한다.
5. %  (산술 연산자) 나머지 값만 보여준다. C = 5;  printf("%d",C%4);
출력값은 1. 왜냐? 5를 4로 나눴을 때 나머지 값은 1이니까.
6. >= , <= 크거나 같다. 혹은 작거나 같다. A>=B
A가 B보다 크거나 같으면 구문을 실행해라.

 

 

퀴즈

Q1. 소개팅을 나가려 한다. 근데 남자분의 키가 적어도 여자분의 키보다 컸으면 좋겠다. 여자분의 키가 163cm일 때, 남자분과의 매칭이 성사될 수 있도록 남자분의 키를 조건식을 사용해서 코드를 짜봐라. (if/else문과 논리연산자)

반응형

+ Recent posts