C 조건문: IF, IF Else 및 중첩된 IF Else(예제 포함)
C의 조건문이란 무엇입니까?
C의 조건문 프로그래밍은 조건에 따라 결정을 내리는 데 사용됩니다. 조건문은 명령문 주변에 조건이 없을 때 순차적으로 실행됩니다. 명령문 블록에 조건을 지정하면 조건에 따라 평가된 결과에 따라 실행 흐름이 변경될 수 있습니다. 이 과정을 'C'에서는 의사결정이라고 합니다.
'C' 프로그래밍에서는 다음 두 가지 구조를 사용하여 조건문을 작성할 수 있습니다.
1. If 문
2. 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개의 관계 연산자가 있으며, 이는 true 또는 false를 반환합니다.
< 미만
<= 작거나 같음
>보다 큼
>= 이상
== 같음
!= 같지 않음
동등 비교 연산자(==)는 할당 연산자(=)와 다릅니다. 이는 프로그래머가 이 둘을 섞어서 겪게 되는 가장 흔한 문제 중 하나이기 때문입니다.
예 :
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 is 문은 If의 확장 버전입니다. if-else의 일반적인 형태는 다음과 같습니다.
if (test-expression) { True block of statements } Else { False block of statements } Statements;
n 이 유형의 구문에서 test-expression의 값이 true이면 실제 명령문 블록이 실행됩니다. test-expression의 값이 false이면 false 명령문 블록이 실행됩니다. 어쨌든 실행 후에는 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보다 작은지 확인합니다. 조건이 true인 경우에만 다음을 실행합니다. 내부 루프. 이 경우 조건이 true이므로 내부 블록이 처리됩니다.
- 내부 블록에서 우리는 다시 변수에 값 1이 들어 있는지 확인하는 조건을 갖습니다. 조건이 참이면 If 블록을 처리하고 그렇지 않으면 else 블록을 처리합니다. 이 경우 조건이 참이므로 If a 블록이 실행되고 값이 출력 화면에 인쇄됩니다.
- 위 프로그램은 a의 값을 인쇄합니다. 변수 그리고 성공하여 종료합니다.
변수 값을 변경해 보고 프로그램이 어떻게 작동하는지 확인하세요.
알림: 중첩된 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개의 테스트 표현식이 모두 false가 되면 기본 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 래더 구조에서는 다양한 조건을 제공했습니다.
- 변수 표시의 값은 첫 번째 조건과 비교됩니다. 이는 해당 조건과 관련된 명령문이 출력 화면에 인쇄되기 때문입니다.
- 첫 번째 테스트 조건이 거짓으로 판명되면 두 번째 조건과 비교됩니다.
- 이 과정은 all 표현식이 평가될 때까지 계속되고, 그렇지 않으면 제어가 else-if 래더에서 벗어나 기본 문장이 인쇄됩니다.
값을 수정해 보고 출력의 변화를 확인하십시오.
요약
- 의사결정 또는 분기문은 평가된 표현식의 결과를 기반으로 하나의 경로를 선택하는 데 사용됩니다.
- 프로그램의 실행 흐름을 제어하기 때문에 제어문이라고도 합니다.
- 'C'는 의사결정문을 위한 if, if-else 구성을 제공합니다.
- 여러 경로를 테스트해야 하는 경우 if-else를 서로 중첩할 수도 있습니다.
- else-if 사다리는 표현식의 결과를 바탕으로 다양한 방법을 확인해야 할 때 사용됩니다.