POST

c언어 조건문 이란?

조건문의 종류에는 if_else, break 와 continue, switch 대략 이런 것들이 존재한다.

조건문의 역할은 프로그램이 하나도 빠짐없이 모두 실행 되게 하는것이 아니라 프로그램의 흐름을 원하는 형태로 컨트롤 할수있게 해준다.

 

예들 들어 계산기와 같은 여러 연산을 수행해야 하는 프로그램을 만든다면 

수를 입력했을때 모든 사칙 연산을 한번에 하지는 않을 것 이다.

보통의 평범한 계산기는 곱셈이나 덧셈 나눗셈 등과 같이 선택적으로 수행 하게끔 되어있다 


이런식의 프로그램을 구현하기 위해서는 조건문이 필요하게 된다.




if문은 해당 조건이 참일 경우에만 if문 내의 작업을 수행한다.

ex)

if(number1>number2)

{

printf("number1이 큼니다.");

}


else 는 if문과 함께 쓰이게 된다. 물론 위의 예시와 같이 else가 없는 독립적인 if문도 만들수있다.

이 else 문은 if의 해당 조건이 거짓일 경우 else 내의 작업을 수행하게된다.

ex)

if(number1>number2)

{

printf("number1이 큼니다.");

}

else

{

printf("number2가 큼니다.");

}

그리고 여기서 else if 로도 쓰일수있다 (if ... else if ...else)

이것은 else 내에 if넣어 이 조건이 맞으면 실행을한다고 봐도 된다.(사실 이게 맞다고 본다.) 

ex1 과 ex2는 같은 의미를 가지고있다.

ex 1 )

if(number1>number2)

{

printf("number1이 큼니다.");

}

else 

{

if (number1<number2)

{

printf("number2가 큼니다.");

}

else

{

printf("두수가 같습니다");

}

}

-------------------------

ex 2 ) 나는 주로 아래와 같이 작성을 한다.

if(number1>number2)

{

printf("number1이 큼니다.");

}

else if (number1<number2)

{

printf("number2가 큼니다.");

}

else

{

printf("두수가 같습니다");

}




continue 와  break문 이둘은 반복문의 생략과 탈출을 할때 쓰이게 되며, break문은 switch문에서도 쓰인다.


일단 continue 를 알아보자 continue는 아래 작업을 실행하지않고 가장 가까운 반복문을 다시 확인을 하러간다.

ex ) 아래의 코드를 실행하게 되면 0~4까지의 수중에 홀수만을 출력하게 될것이다.

for(i=0 ; i<5 ; i++)

{

if(i%2 == 0) // 2로나눈 나머지가 0일경우 아래의 출력을 생략하고 for반복문으로 돌아가 조건을 다시 비교하는것이다.

continue;

printf("%d \n",i);

}


그리고 break문은 반복문을 탈출할때 쓰이게 된다.

프로그램이 실행을 하다가 break를 만나게되면 밑의 작업을 실행하지않고 가장 가까문 반복문을 탈출하게된다.

ex)아래의 while반복문은 무한루프로 끈임없이 반복하게된다.

     하지만 if문과 break문으로 10번만 돌수있게끔 해주었다.

int i=0;

while(1)

{

i++

if(i == 10)

break;

printf("%d \n",i);

}



이제 switch 문을 살펴보자 

switch문은 선택적 실행을 하게된다. if ... else if ... else와 유사하지만 사용 할 수 있는 영역은 제한적이다.

아래와 같이 코드를 짜게 되면 사용자가 입력한 수에따라 해당 case내의 영역만을 실행하게된다.

여기서 break문을 빼게된다면 해당 case의 영역을 실행을 한후 아래의 다른 영역도 함께 실행을 하게된다.


ex 1) break 가 있을 경우 해당 영역을 실행하고 나머지는 생략하게된다.

int num;

scanf_s("%d",&num);

switch(num)

{

case 1:

printf("하나입니다.\n");

break;

case 2:

printf("둘입니다.\n");

break;

case 3:

printf("셋입니다.\n");

break;

case 4:

printf("넷입니다.\n");

break;

case 5:

printf("다섯입니다.\n");

default:

printf("뭘까요?\n");

}


ex 2) break 가 없을 경우 해당 영역을 실행한 후 에도 나머지 조건건이 맞는지 실행을 한다.

int num;

scanf_s("%d",&num);

switch(num)

{

case 1:

printf("하나입니다.\n");

case 2:

printf("둘입니다.\n");

case 3:

printf("셋입니다.\n");

case 4:

printf("넷입니다.\n");

case 5:

printf("다섯입니다.\n");

default:

printf("뭘까요?\n");

}