C 언어의 조건문: if, else, 중첩 if (예제 포함)
⚡ 스마트 요약
C 언어의 조건문은 테스트 대상이 참으로 평가될 때만 코드 블록을 실행함으로써 프로그램의 흐름을 제어하며, if, if-else, 중첩 if, else-if 등의 구문을 통해 의사 결정을 가능하게 합니다.

C의 조건문이란 무엇입니까?
C 프로그래밍에서 조건문은 조건에 따라 결정을 내리는 데 사용됩니다. 조건문은 조건이 없을 경우 순차적으로 실행됩니다. 하지만 조건문을 조건으로 지정하면, 조건의 결과에 따라 실행 흐름이 바뀔 수 있습니다. 이러한 과정을 C 언어에서는 의사 결정이라고 합니다.
같지 않은 C 언어의 루프 반복되는 코드와 조건문은 하나의 경로를 선택합니다.
'C' 프로그래밍에서는 다음 두 가지 구조를 사용하여 조건문을 작성할 수 있습니다.
- If 문
- If-else 문
프로그램이 평가된 조건의 결과에 따라 어떤 명령문을 실행할지 결정하므로 이를 분기라고도 합니다.
If 문
강력한 조건문 중 하나입니다. If 문은 프로그램 실행 흐름을 수정하는 역할을 담당합니다. If 문은 항상 조건과 함께 사용됩니다. 조건은 If 본문 내부의 명령문을 실행하기 전에 먼저 평가됩니다. if 문의 구문은 다음과 같습니다.
if (condition)
instruction;
조건은 true 또는 false로 평가됩니다. True는 항상 XNUMX이 아닌 값이고 false는 XNUMX을 포함하는 값입니다. 명령어는 단일 명령어이거나 중괄호 { }로 묶인 코드 블록일 수 있습니다.
다음 프로그램은 'C' 프로그래밍에서 if 구문을 사용하는 방법을 보여줍니다.
#include<stdio.h> int main() { int num1=1; int num2=2; if(num1<num2) //test-condition { printf("num1 is smaller than num2"); } return 0; }
출력:
num1 is smaller than num2
위 프로그램은 if 구문을 사용하여 두 숫자가 같은지 확인하는 방법을 보여줍니다.
- 위 프로그램에서는 값이 각각 1, 2인 num1, num2의 두 변수를 초기화했습니다.
- 그런 다음 테스트 표현식과 함께 if를 사용하여 어떤 숫자가 가장 작고 어떤 숫자가 가장 큰지 확인했습니다. if 구문에서 관계식을 사용했습니다. num1의 값이 num2보다 작으므로 조건은 true로 평가됩니다.
- 따라서 If 블록 내부에 명령문이 인쇄됩니다. 그 이후에는 제어가 블록 외부로 나가고 프로그램은 성공적인 결과로 종료됩니다.
관계형 Opera토르
C 언어에는 조건 판단 및 테스트에 사용할 수 있는 부울 표현식을 구성하는 데 사용할 수 있는 6개의 관계 연산자가 있으며, 이 연산자들은 참 또는 거짓을 반환합니다.
<— 미만<=— 이하>— 보다 큰>=— 크거나 같음==— ~와 같음!=— 같지 않음
동등 비교 연산자(==)는 할당 연산자(=)와 다릅니다. 이는 프로그래머가 이 둘을 섞어서 겪게 되는 가장 흔한 문제 중 하나이기 때문입니다.
예 :
int x = 41; x =x+ 1; if (x == 42) { printf("You succeed!");}
출력 :
You succeed
XNUMX이 아닌 값으로 평가되는 조건은 참으로 간주됩니다.
예 :
int present = 1; if (present) printf("There is someone present in the classroom \n");
출력:
There is someone present in the classroom
If-Else 문
if-else 문은 if 문의 확장된 형태입니다. if-else 문의 일반적인 형식은 다음과 같습니다.
if (test-expression)
{
True block of statements
}
Else
{
False block of statements
}
Statements;
이러한 구문에서는 테스트 표현식의 값이 참이면 참 조건문의 문장 블록이 실행되고, 거짓이면 거짓 조건문의 문장 블록이 실행됩니다. 어떤 경우든 실행이 완료되면 제어는 자동으로 if 블록 바깥에 있는 문장들로 이동합니다.
다음 프로그램은 if-else 구조의 사용을 보여줍니다.
우리는 어떤 값으로 변수를 초기화하고 그 값이 XNUMX보다 작은지 아니면 XNUMX보다 큰지 결정하는 프로그램을 작성하겠습니다.
시작하자.
#include<stdio.h> int main() { int num=19; if(num<10) { printf("The value is less than 10"); } else { printf("The value is greater than 10"); } return 0; }
출력:
The value is greater than 10
- 변수를 값 19로 초기화했습니다. 'C' 프로그램을 사용하여 숫자가 10보다 큰지 작은지 알아내야 합니다. 이를 위해 if-else 구조를 사용했습니다.
- 여기서는 값을 10과 비교해야 하기 때문에 num<10이라는 조건을 제공했습니다.
- 보시다시피 첫 번째 블록은 항상 참 블록입니다. 즉, test-expression의 값이 참이면 첫 번째 블록인 If가 실행됩니다.
- 두 번째 블록은 else 블록입니다. 이 블록에는 test-expression의 값이 false가 될 경우 실행될 명령문이 포함되어 있습니다. 우리 프로그램에서는 num 값이 10보다 크므로 테스트 조건이 false가 되고 else 블록이 실행됩니다. 따라서 우리의 출력은 "값이 XNUMX보다 큽니다"라는 else 블록에서 나옵니다. if-else 이후에는 프로그램이 성공적인 결과로 종료됩니다.
'C' 프로그래밍에서는 if-else 문의 중첩이라고 하는 여러 if-else 구문을 서로 사용할 수 있습니다.
조건식
if-else 문을 표현하는 또 다른 방법은 ?: 연산자를 사용하는 것입니다. 조건식에서 ?: 연산자는 if와 else에 각각 하나의 문장만 연결할 수 있습니다.
예 :
#include <stdio.h> int main() { int y; int x = 2; y = (x >= 6) ? 6 : x;/* This is equivalent to: if (x >= 5) y = 5; else y = x; */ printf("y =%d ",y); return 0;}
출력:
y =2
중첩된 If-else 문
일련의 결정이 필요한 경우 중첩된 if-else가 사용됩니다. 중첩이란 하나의 if-else 구문을 다른 구문 내에 사용하는 것을 의미합니다.
중첩된 if-else의 사용을 설명하는 프로그램을 작성해 보겠습니다.
#include<stdio.h> int main() { int num=1; if(num<10) { if(num==1) { printf("The value is:%d\n",num); } else { printf("The value is greater than 1"); } } else { printf("The value is greater than 10"); } return 0; }
출력:
The value is:1
위 프로그램은 숫자가 10보다 작거나 큰지 확인하고 중첩된 if-else 구문을 사용하여 결과를 인쇄합니다.
- 먼저 값이 1인 변수 num을 선언했습니다. 그런 다음 if-else 구문을 사용했습니다.
- 바깥쪽 if-else 문에서 주어진 조건은 숫자가 10보다 작은지 확인합니다. 조건이 참일 경우에만 안쪽 블록이 실행됩니다. 이 경우 조건이 참이므로 안쪽 블록이 처리됩니다.
- 내부 블록에는 변수에 1이라는 값이 있는지 확인하는 조건이 다시 있습니다. 조건이 참이면 if 블록이 실행되고, 그렇지 않으면 else 블록이 실행됩니다. 이 경우 조건이 참이므로 if 블록이 실행되고 값이 출력 화면에 출력됩니다.
- 위 프로그램은 변수의 값을 출력하고 성공적으로 종료됩니다.
값을 변경해 보세요 변수 프로그램이 어떻게 작동하는지 살펴보세요.
참고: 중첩된 if-else 문에서는 여러 개의 if-else 문이 얽혀 있기 때문에 들여쓰기에 특히 주의해야 합니다. 들여쓰기를 제대로 하면 각 문을 구분하기 어려워집니다. 적절한 들여쓰기는 프로그램을 읽기 쉽게 만들어 줍니다.
중첩된 Else-if 문
중첩된 else-if는 다중 경로 결정이 필요할 때 사용됩니다.
'C' 프로그래밍에서 else-if 래더를 구성하는 방법에 대한 일반적인 구문은 다음과 같습니다.
if (test - expression 1) { statement1; } else if (test - expression 2) { Statement2; } else if (test - expression 3) { Statement3; } else if (test - expression n) { Statement n; } else { default; } Statement x;
이러한 구조를 'else-if 사다리'라고 합니다. 이 구조가 사다리처럼 보이기 때문에 'else-if 사다리'라고도 불립니다. 테스트 표현식은 위에서 아래로 순차적으로 평가됩니다. 참인 테스트 표현식이 발견되면 해당 표현식과 관련된 문장이 실행됩니다. 모든 n개의 테스트 표현식이 거짓이 되면 기본 'else' 문이 실행됩니다.
프로그램의 도움을 받아 실제 작업을 살펴보겠습니다.
#include<stdio.h> int main() { int marks=83; if(marks>75){ printf("First class"); } else if(marks>65){ printf("Second class"); } else if(marks>55){ printf("Third class"); } else{ printf("Fourth class"); } return 0; }
출력:
First class
위의 프로그램은 시험에서 얻은 점수에 따라 성적을 인쇄합니다. 위 프로그램에서는 else-if 래더 구조를 사용했습니다.
- 마크가 있는 변수를 초기화했습니다. else-if 래더 구조에서는 다양한 조건을 제공했습니다.
- 변수 표시의 값은 첫 번째 조건과 비교됩니다. 이는 해당 조건과 관련된 명령문이 출력 화면에 인쇄되기 때문입니다.
- 첫 번째 테스트 조건이 거짓으로 판명되면 두 번째 조건과 비교됩니다.
- 이 과정은 모든 표현식이 평가될 때까지 계속되며, 그렇지 않으면 제어 흐름이 else-if 문 밖으로 나가고 기본 문장이 출력됩니다.
값을 수정해 보고 출력의 변화를 확인하십시오.





