C언어 제어문 if 문 | 분기문 

 

루프와 분기문을 마스터하면 C 프로그램을 설계하는데 필요한 기초 정보는 거의 배운 것과 같습니다.

 

CPU의 제어를 할 수 있으면 프로그램을 원하는 방식으로 동작시킬 수 있습니다.

 

while 문 포스팅에서 C언어의 다섯가지 문장 형식은 아래와 같다고 했습니다. 

 

  1. 선언 (declare)
  2. 대입 (assignment)
  3. 함수 (function)
  4. 제어 (control)
  5. 널 (null)

 

변수와 타입을 배울 때 선언문과 대입문을 습득하고,

 

CPU의 제어는 while, for, if 문으로 할 수 있습니다.

 

나머지는 함수와 널인데 함수는 별도의 포스팅에서 널은 포인터에서 배울 수 있습니다.

 

개념을 이해했다면 이제 기존의 알고리즘을 리뷰하고

 

매일 코드를 작성하면서 뇌의 근육을 단련시키면 됩니다.

 

if 문

if 문은 둘중하나를 선택하는 갈림길을 만듭니다.

 

Yes or No / True or False / 1 or 0

 

해서 분기 또는 선택문이라고 합니다.

 

분기문 : Branching Statement, 선택문 : selection statement

 

형식은 다음과 같습니다.

if (조건식)
{
    코드블록
}

 

while 하고 비슷한 모습인데요, while 과 다른 점은 while 은 코드블록이 끝난 후에 다시 조건식을 검사하는 반면 if 문은 최초 한번만 조건식을 검사합니다.

 

while 이 루프를 도는 동안 if 는 한번에 양쪽으로 길을 가릅니다.

 

if 문 안의 블록은 실행되거나 안되거나 둘중 하나입니다. branching 은 나무의 가지가 뻗어나가는 것과 같다 해서 branching 입니다.

 

branching

    int myNumber = 10;

    if (myNumber > 5)
    {
        printf("myNumber is larger than 5!");
    }

조건식에서 숫자를 비교하여 참이면 실행, 거짓이면 건너뜁니다.

 

조건식에 나오는 관계연산자에 대하여는 아래의 링크를 참고합니다.

 

C언어 4 - 1 | 제어문 if 조건문 if문 if else 문 (tistory.com)

 

C언어 4 - 1 | 제어문 if 조건문 if문 if else 문

c언어는 main 함수에서 시작하여 한줄 한줄 읽고 실행을 시키는 구조이다. 그것만으로는 부족하다. 프로그램의 행동을 제어함으로써 기계에 생명을 불어넣는다... 가 바로 제어문이다. 최근 각광

digiconfactory.tistory.com

C++ | if 문 (If Statement) 조건문 | if else 문 | 관계연산자 | 논리연산자 (tistory.com)

 

C++ | if 문 (If Statement) 조건문 | if else 문 | 관계연산자 | 논리연산자

if 문은 조건문이다. 조건 분기한다는 말인데 프로그램의 제어를 하는 문장이다. C++ 프로그램은 main 함수의 첫번째 줄의 명령어에서 시작해서, 마지막 줄인 return 문에서 끝난다고 했다. 그렇게

digiconfactory.tistory.com

 

if ( 조건식 ) 에서 조건식은 흔히 표현식(expression)이라고 합니다.

 

표현식도 가능합니다. 관계연산을 안하더라도 반환값이 있기 때문입니다.

 

함수의 반환값을 사용하는 것도 가능합니다.

int isOkay() {
    return 1;
}

int main()
{
    int myNumber = 10;
    
    if (isOkay())
    {
        printf("myNumber is larger than 5!\n");
    }
        return 0;
}

 

어떤 값을 비교하는 것 뿐만 아니라 그냥 (1) 혹은 (0) 을 줄 수도 있습니다.

 

아래에서 보면 여러가지 경우를 분류해놓고 있습니다. 이런 내용들을 다 외워야 하겠지만...

 

// 참인 경우

if ( 1 )
if ('a')
if ("")
if ("a")
if (true)
if (99)
if (-5)

// 거짓인 경우

if (0)
if (false)
if (NULL)

 

억지로 암기하는 것 보다는

 

if 의 표현식에 어떤 값이 반환될 것 인지 범위를 정해두는게 좋습니다.

 

아래 표현식의 반환값은 항상 0과 1입니다.

 

그래서 관계식이나 논리식이 기본입니다.

printf("%d\n", 3 > 1);
printf("%d\n", 1 > 3);
1
0

if else 문

if else 문이 있는 것은 둘 중에 하나를 선택하기 위해서 입니다.

 

if문을 하나만 쓰면 어차피 내부블록이 실행되거나 안되거나 둘중 하나입니다.

 

여기에 if 문이 채택되지 않았을 때의 실행블록을 하나 추가하는 것 입니다.

 

조건식은 1 아니면 0 일테니 else 문에는 조건식이 필요가 없습니다.

 

if(조건식)
{
    코드블록
}
else
{
    코드블록
}

 

매트릭스의 빨간약과 파란약이 생각나는 군요

 

if else 문은 while 문과 같은 루프가 아니기 때문에 언제나 둘 중 하나를 선택해야 합니다.

 

둘중 하나를 선택하는 일을 여러번 하고 싶다. 그러면 그위에 while 이나 for 를 씌웁니다.

 

C언어는 이런 것을 통해 CPU의 제어를 하는 것 입니다.

 

컴퓨터는 무수한 일을 동시에 하는 듯 복잡해 보이지만 밑바닥에는 지극히 단순한 원리로 만들어집니다.

 

C언어가 하는 일은 YES OR NO 에 대한 질문에 끓임없이 답하는 것입니다.

 

if나 else 둘중 하나는 반드시 실행되야 합니다.

 

while (조건식)
{
    if(조건식)
    {
        코드블록
    }
    else
    {
        코드블록
    }
}

공유하기

facebook twitter kakaoTalk kakaostory naver band