C언어 조건문에서 if
문은 조건식이 참일 경우 코드를 실행합니다. if else if
문은 조건식을 두 개 이상 설정할 수 있습니다. switch
문은 정수, 문자 자료형 한정으로 if else if
문과 동일한 문법입니다.
C언어 조건문의 종류
조건문은 설정한 조건식에 따라서 실행될 코드 블록과 실행 되지 않을 블록을 설정할 수 있습니다. 조건문의 종류에는 if
, if else
, if else if
, switch
가 있습니다.
기호 | 형태 | 의미 |
---|---|---|
if | if (조건) {A} | (조건) = 참이면 {A} 실행, (조건) = 거짓이면 if문 탈출 |
if else | if (조건) {A} else {B} | (조건) = 참이면 {A} 실행, (조건) = 거짓이면 {B} 실행 |
if else if | if (조건 a) {A} else if (조건 b) {B} else {C} | (조건 a) = 참이면 {A} 실행, (조건 a) = 거짓 & (조건 b) = 참이면 {B} 실행, (조건 a) = 거짓 & (조건 b) = 거짓이면 {C} 실행 |
switch | switch (x) case (a) {A} default {C} | x = a이면 {A} 실행, x != a이면, {C} 실행 |
if 조건문
C언어 if
조건문은 if (조건식)
이 참이면 if
문 내부의 코드 블록을 실행합니다. if (조건식)
이 거짓이면 if
문을 탈출합니다.
#include<stdio.h>
void main() {
if(조건식)
{
실행문 A
}
실행문 B
}
if
조건식이 참일 때 if
문 내부 코드가 먼저 실행됩니다. if
문 밖으로 나온 후 외부의 잔여 코드를 실행합니다.
#include<stdio.h>
void main() {
int x = 1;
int y = 2;
if (x < y)
{
printf("x가 y보다 작습니다. \n"); //if문 내부 실행문
}
printf("종료 \n"); //if문 외부 실행문
}
결과
x가 y보다 작습니다.
종료
if
조건식이 거짓일 때 if
문 내부 코드는 무시됩니다. if
문 밖에 외부 코드가 있다면 외부 코드만 실행됩니다.
#include<stdio.h>
void main() {
int x = 3;
int y = 2;
if (x < y)
{
printf("x가 y보다 작습니다. \n"); //if문 내부 실행문
}
printf("종료 \n"); //if문 외부 실행문
}
결과
종료
if else 조건문
C언어 if else
조건문은 조건식 하나에 대해서 참 또는 거짓인 경우에 따라 실행 코드가 달라집니다.
#include<stdio.h>
void main() {
if (조건식)
{
실행문 A
}
else
{
실행문 B
}
}
if 조건식이 참일 경우 if
문 내부의 실행문 A가 실행되며, else
문 내부의 실행문 B는 무시됩니다.
#include<stdio.h>
void main() {
int x = 1;
int y = 2;
if (x < y)
{
printf("x가 y보다 작습니다. \n"); //if문 내부 실행문
}
else
{
printf("x가 더 크거나 같습니다. \n"); //else문 내부 실행문
}
printf("종료 \n"); //if문, else문과 무관하게 실행
}
결과
if
문, else
문 밖의 코드는 조건식의 참, 거짓과 무관하게 실행됩니다.
x가 y보다 작습니다.
종료
if 조건식이 거짓일 경우 if
문 내부의 실행문 A는 무시되며, else
문 내부의 실행문 B가 실행됩니다.
#include<stdio.h>
void main() {
int x = 3;
int y = 2;
if (x < y)
{
printf("x가 y보다 작습니다. \n"); //if문 내부 실행문
}
else
{
printf("x가 y보다 크거나 같습니다. \n"); //else문 내부 실행문
}
printf("종료 \n"); //if문, else문과 무관하게 실행
}
결과
x가 y보다 크거나 같습니다.
종료
if else if 조건문
C언어 if else if
조건문은 두 개 이상의 조건문을 사용해서 선택 가능한 경우의 수를 늘릴 때 사용합니다.
#include<stdio.h>
void main() {
if (조건식 A)
{
실행문 a; //조건식 A가 참이면, 실행
}
else if (조건식 B)
{
실행문 b; //조건식 A가 거짓, 조건식 B가 참이면 실행
}
else
{
실행문 c; //조건식 A가 거짓, 조건식 B가 거짓이면 실행
}
}
if
조건식이 참일 경우, if
문 내부의 코드 블록만 실행됩니다. else if
및 else
코드 블록은 무시됩니다.
#include
void main() {
int x = 1;
int y = 2;
if (x < y)
{
printf("x가 y보다 작습니다. \n"); //if(조건식)이 참이면, 실행
}
else if (x == y)
{
printf("x가 y와 같습니다. \n"); //if(조건식)이 거짓, else if(조건식)이 참이면, 실행
}
else
{
printf("x가 y보다 큽니다. \n"); //if(조건식)이 거짓, else if(조건식)이 거짓이면, 실행
}
printf("종료 \n"); //조건문 밖의 코드는 조건과 무관하게 실행
}
결과
조건식 밖의 잔여 코드는 조건과 무관하게 실행됩니다.
x가 y보다 작습니다.
종료
if(조건식)
이 거짓이고, else if(조건식)
이 참일 경우, else if
문 내부의 코드 블록만 실행됩니다. 나머지 if
문 및 else
문의 코드 블록은 무시됩니다.
#include<stdio.h>
void main() {
int x = 2;
int y = 2;
if (x < y)
{
printf("x가 y보다 작습니다. \n"); //if(조건식)이 참이면, 실행
}
else if (x == y)
{
printf("x가 y와 같습니다. \n"); //if(조건식)이 거짓, else if(조건식)이 참이면, 실행
}
else
{
printf("x가 y보다 큽니다. \n"); //if(조건식)이 거짓, else if(조건식)이 거짓이면, 실행
}
printf("종료 \n"); //조건문 밖의 코드는 조건과 무관하게 실행
}
결과
조건식 밖의 잔여 코드는 조건과 무관하게 실행됩니다.
x가 y와 같습니다.
종료
if(조건식)
이 거짓, else if(조건식)
이 거짓이면 else
문 내부의 코드 블록이 실행됩니다. 나머지 if
문 및 else if
문 내부의 코드 블록은 무시됩니다.
#include<stdio.h>
void main() {
int x = 2;
int y = 1;
if (x < y)
{
printf("x가 y보다 작습니다. \n"); //if(조건식)이 참이면, 실행
}
else if (x == y)
{
printf("x가 y와 같습니다. \n"); //if(조건식)이 거짓, else if(조건식)이 참이면, 실행
}
else
{
printf("x가 y보다 큽니다. \n"); //if(조건식)이 거짓, else if(조건식)이 거짓이면, 실행
}
printf("종료 \n"); //조건문 밖의 코드는 조건과 무관하게 실행
}
결과
조건식 밖의 잔여 코드는 조건과 무관하게 실행됩니다.
x가 y보다 큽니다.
종료
switch 조건문
C언어 switch
조건문은 if else if
조건문처럼 여러 경우의 수를 선택할 때 사용합니다. if else if
와 차이점이 있다면 switch
문은 case
에 정수(int
) 및 단일 문자(char
) 자료형만 올 수 있습니다. case
뒤에는 변수명도 올 수 없음을 유의합니다.
#include<stdio.h>
void main() {
switch (x)
{
case a :
{
실행문 A;
break;
}
case b :
{
실행문 B;
break;
}
default :
{
실행문 C;
}
}
}
switch (x)
와 case
값이 일치하는 경우 해당 case
코드 블록을 실행시킵니다. 이후 break
문을 만나면 switch
조건문에서 빠져나오고, 잔여 case
코드 블록은 무시합니다.
#include<stdio.h>
void main() {
int x = 1;
int y;
switch (x)
{
case 0 : //x = 0 일 때 실행
{
y = 33; //y = 33 대입
printf("y값은 %d \n", y); //y값 출력
}
break; //switch문 밖으로 탈출
case 1 : //x != 0 이고, x = 1 일 때 실행
{
y = 44; //y = 44 대입
printf("y값은 %d \n", y); //y값 출력
}
break; //switch문 밖으로 탈출
default : //x != 0 이고, x != 1 일 때, 실행
{
y = 99; // y = 99 대입
printf("y값은 %d \n", y); //y값 출력
}
}
printf ("종료"); //switch문 밖의 외부 코드는 switch문과 무관하게 실행
}
결과
조건식 밖의 잔여 코드는 조건식과 무관하게 실행됩니다.
y값은 44
종료
switch (x)
가 어떤 case
값과도 일치하지 않는 경우 default
문의 내부 코드 블록을 실행시킵니다.
#include<stdio.h>
void main() {
int x = 99;
int y;
switch (x)
{
case 0 : //x = 0 일 때 실행
{
y = 33; //y = 33 대입
printf("y값은 %d \n", y); //y값 출력
}
break; //switch문 밖으로 탈출
case 1 : //x != 0 이고, x = 1 일 때 실행
{
y = 44; //y = 44 대입
printf("y값은 %d \n", y); //y값 출력
}
break; //switch문 밖으로 탈출
default : //x != 0 이고, x != 1 일 때, 실행
{
y = 99; // y = 99 대입
printf("y값은 %d \n", y); //y값 출력
}
}
printf ("종료"); //switch문 밖의 외부 코드는 switch문과 무관하게 실행
}
결과
y값은 99
종료
조건식 밖의 잔여 코드는 조건식과 무관하게 실행됩니다.