그만큼 조건문 if, else, 스위치 등과 같은 (의사결정 제어 구조라고도 함)은 C 프로그램에서 의사결정 목적으로 사용됩니다.
의사결정문이라고도 하며 하나 이상의 조건을 평가하고 일련의 문을 실행할지 여부를 결정하는 데 사용됩니다. 프로그래밍 언어의 이러한 의사결정문은 프로그램 실행 흐름의 방향을 결정합니다.
조건문의 필요성
실제 생활에서는 결정을 내려야 하는 상황이 발생하며, 이러한 결정에 따라 다음에 무엇을 해야 할지 결정합니다. 프로그래밍에서도 몇 가지 결정을 내려야 하는 경우에도 비슷한 상황이 발생하며 이러한 결정에 따라 다음 코드 블록을 실행합니다. 예를 들어 C에서 x가 발생하면 y를 실행하고 그렇지 않으면 z를 실행합니다. C에서와 같이 x가 발생하면 p를 실행하고, 그렇지 않으면 조건 y가 발생하면 q를 실행하고, 그렇지 않으면 r을 실행하는 것과 같은 여러 조건이 있을 수 있습니다. C else-if의 이 조건은 여러 조건을 가져오는 여러 가지 방법 중 하나입니다.
C의 조건문 유형
다음은 C에서 사용할 수 있는 의사결정문입니다.
- if 문
- if-else 문
- 중첩된 if 문
- if-else-if 사다리
- 스위치 문
- 조건부 연산자
- 점프 문:
- 부서지다
- 계속하다
- 이동
- 반품
각각에 대해 하나씩 논의해 보겠습니다.
1. C의 경우
그만큼 if 문 가장 간단한 의사결정문이다. 특정 명령문이나 명령문 블록이 실행될지 여부를 결정하는 데 사용됩니다. 즉, 특정 조건이 true이면 명령문 블록이 실행되고 그렇지 않으면 실행되지 않습니다.
if 문의 구문
if ( condition ) { // Statements to execute if // condition is true }>
여기서는 상태 평가 후에는 true 또는 false가 됩니다. C if 문은 부울 값을 허용합니다. 값이 true이면 아래에 있는 문 블록을 실행하고 그렇지 않으면 실행하지 않습니다. if(조건) 뒤에 중괄호 '{' 및 '}'를 제공하지 않으면 기본적으로 if 문은 바로 아래의 첫 번째 문을 해당 블록 내에 있는 것으로 간주합니다.
if 문의 흐름도

if 문의 흐름도
C에서의 if의 예
씨
// C program to illustrate If statement> #include> > int> main()> {> > int> i = 10;> > > if> (i>15) {> > printf> (> '10 is greater than 15'> );> > }> > > printf> (> 'I am Not in if'> );> }> |
루프에 대한 bash
>
>산출
I am Not in if>
if 문의 조건이 false이기 때문입니다. 따라서 if 문 아래의 블록은 실행되지 않습니다.
2. C의 if-else
그만큼 만약에 명령문만으로도 조건이 참이면 명령문 블록을 실행하고 조건이 거짓이면 실행하지 않는다는 것을 알 수 있습니다. 하지만 조건이 거짓일 때 다른 작업을 수행하고 싶다면 어떻게 해야 할까요? 여기 C가 온다 또 다른 성명. 우리는 또 다른 와의 진술 만약에 조건이 거짓일 때 코드 블록을 실행하는 명령문입니다. 그만큼 if-else 문 두 개의 블록으로 구성됩니다. 하나는 거짓 표현용이고 다른 하나는 참 표현용입니다.
C의 if else 구문
if ( condition ) { // Executes this block if // condition is true } else { // Executes this block if // condition is false }>
if-else 문의 흐름도

if else의 흐름도
if-else의 예
씨
// C program to illustrate If statement> #include> > int> main()> {> > int> i = 20;> > > if> (i <15) {> > > printf> (> 'i is smaller than 15'> );> > }> > else> {> > > printf> (> 'i is greater than 15'> );> > }> > return> 0;> }> |
>
>산출
i is greater than 15>
다음 코드 블록은 또 다른 명령문은 현재 조건에 따라 실행됩니다. 만약에 진술은 거짓입니다.
3. C에 if-else가 중첩됨
C에서 중첩된 if는 다른 if 문의 대상인 if 문입니다. 중첩된 if 문은 다른 if 문 안에 있는 if 문을 의미합니다. 예, C에서는 if 문 내에 if 문을 중첩할 수 있습니다. 즉, 다른 if 문 안에 if 문을 배치할 수 있습니다.
중첩된 if-else의 구문
if ( condition1 ) { // Executes when condition1 is true if ( condition2 ) { // Executes when condition2 is true } else { // Executes when condition2 is false }>
흐름도 중첩된 if-else
중첩된 if-else의 흐름도
중첩된 if-else의 예
씨
// C program to illustrate nested-if statement> #include> > int> main()> {> > int> i = 10;> > > if> (i == 10) {> > // First if statement> > if> (i <15)> > printf> (> 'i is smaller than 15
'> );> > > // Nested - if statement> > // Will only be executed if statement above> > // is true> > if> (i <12)> > printf> (> 'i is smaller than 12 too
'> );> > else> > printf> (> 'i is greater than 15'> );> > }> > > return> 0;> }> |
>
>산출
i is smaller than 15 i is smaller than 12 too>
4. C의 if-else-if 래더
그만큼 if else if 문 사용자가 여러 옵션 중에서 결정해야 할 때 사용됩니다. C if 문은 위에서 아래로 실행됩니다. if를 제어하는 조건 중 하나가 true이면 해당 if와 관련된 명령문이 실행되고 C else-if 래더의 나머지 부분은 우회됩니다. 조건 중 어느 것도 참이 아니면 마지막 else 문이 실행됩니다. if-else-if 사다리는 스위치 문과 유사합니다.
if-else-if 래더의 구문
if ( condition ) statement; else if ( condition ) statement; . . else statement;>
if-else-if 래더의 흐름도

if-else-if의 흐름도
if-else-if 래더의 예
씨
// C program to illustrate nested-if statement> #include> > int> main()> {> > int> i = 20;> > > if> (i == 10)> > printf> (> 'i is 10'> );> > else> if> (i == 15)> > printf> (> 'i is 15'> );> > else> if> (i == 20)> > printf> (> 'i is 20'> );> > else> > printf> (> 'i is not present'> );> }> |
>
>산출
i is 20>
5. C의 스위치 문
그만큼 스위치 케이스 설명 이는 switch 문에 지정된 변수 값을 기반으로 조건부 코드를 실행하는 데 사용할 수 있는 if else if 래더의 대안입니다. 스위치 블록은 스위치 변수의 값에 따라 실행될 케이스로 구성됩니다.
스위치 구문
switch ( expression ) { case value1: statements; case value2: statements; .... .... .... default: statements; }>
메모: 스위치 표현식은 정수 또는 문자로 평가되어야 합니다. 다른 데이터 유형은 평가할 수 없습니다.
스위치의 흐름도

C의 스위치 흐름도
switch 문의 예
씨
// C Program to illustrate the use of switch statement> #include> > int> main()> {> > // variable to be used in switch statement> > int> var = 2;> > > // declaring switch cases> > switch> (var) {> > case> 1:> > printf> (> 'Case 1 is executed'> );> > break> ;> > case> 2:> > printf> (> 'Case 2 is executed'> );> > break> ;> > default> :> > printf> (> 'Default Case is executed'> );> > break> ;> > }> > > return> 0;> }> |
>
>산출
Case 2 is executed>
6. C의 조건 연산자
그만큼 조건부 연산자 프로그램에 조건부 코드를 추가하는 데 사용됩니다. if-else 문과 비슷합니다. 세 개의 피연산자에 대해 작동하므로 삼항 연산자라고도 합니다.
조건 연산자의 구문
( condition ) ? [true_statements] : [false_statements] ;>
조건부 연산자의 흐름도

조건 연산자의 흐름도
조건 연산자의 예
씨
// C Program to illustrate the use of conditional operator> #include> > // driver code> int> main()> {> > > int> var;> > int> flag = 0;> > > // using conditional operator to assign the value to var> > // according to the value of flag> > var = flag == 0 ? 25 : -25;> > printf> (> 'Value of var when flag is 0: %d
'> , var);> > > // changing the value of flag> > flag = 1;> > // again assigning the value to var using same statement> > var = flag == 0 ? 25 : -25;> > printf> (> 'Value of var when flag is NOT 0: %d'> , var);> > > return> 0;> }> |
>
>
자바 람다 예산출
Value of var when flag is 0: 25 Value of var when flag is NOT 0: -25>
7. C의 점프 문
이러한 명령문은 프로그램의 기능 전반에 걸쳐 무조건적인 제어 흐름을 위해 C에서 사용됩니다. 이들은 네 가지 유형의 점프 문을 지원합니다.
ㅏ) 부서지다
이 루프 제어문은 루프를 종료하는 데 사용됩니다. 하자마자 부서지다 문이 루프 내에서 발견되면 루프 반복은 거기서 멈추고 제어는 루프에서 루프 뒤의 첫 번째 문으로 즉시 반환됩니다.
휴식의 구문
break;>
기본적으로 break 문은 루프의 실제 반복 횟수가 확실하지 않거나 일부 조건에 따라 루프를 종료하려는 상황에서 사용됩니다.

휴식의 예
씨
// C program to illustrate> // to show usage of break> // statement> #include> > void> findElement(> int> arr[],> int> size,> int> key)> {> > // loop to traverse array and search for key> > for> (> int> i = 0; i if (arr[i] == key) { printf('Element found at position: %d', (i + 1)); break; } } } int main() { int arr[] = { 1, 2, 3, 4, 5, 6 }; // no of elements int n = 6; // key to be searched int key = 3; // Calling function to find the key findElement(arr, n, key); return 0; }> |
>
>산출
Element found at position: 3>
비) 계속하다
이 루프 제어문은 break 문과 같습니다. 그만큼 계속하다 성명 휴식시간과 반대 성명 , 루프를 종료하는 대신 루프의 다음 반복을 강제로 실행합니다.
이름에서 알 수 있듯이 continue 문은 루프를 강제로 계속하거나 다음 반복을 실행합니다. continue 문이 루프에서 실행되면 continue 문 다음의 루프 내부 코드를 건너뛰고 루프의 다음 반복이 시작됩니다.
계속의 구문
continue;>
계속의 흐름도
C continue 문의 흐름도
계속의 예
씨
// C program to explain the use> // of continue statement> #include> > int> main()> {> > // loop from 1 to 10> > for> (> int> i = 1; i <= 10; i++) {> > > // If i is equals to 6,> > // continue to next iteration> > // without printing> > if> (i == 6)> > continue> ;> > > else> > // otherwise print the value of i> > printf> (> '%d '> , i);> > }> > > return> 0;> }> |
>
>산출
1 2 3 4 5 7 8 9 10>
C의 if-else에 변수를 생성하면 해당 if/else 블록에만 로컬이 됩니다. if/else 블록 내에서 전역 변수를 사용할 수 있습니다. if/else에서 생성한 변수의 이름이 전역 변수와 동일하면 '로컬 변수'에 우선순위가 부여됩니다.
씨
학교는 어떻게 발명됐나
#include> > int> main()> {> > > int> gfg = 0;> // local variable for main> > printf> (> 'Before if-else block %d
'> , gfg);> > if> (1) {> > int> gfg = 100;> // new local variable of if block> > printf> (> 'if block %d
'> , gfg);> > }> > printf> (> 'After if block %d'> , gfg);> > return> 0;> }> |
>
>산출
Before if-else block 0 if block 100 After if block 0>
씨) 이동
그만큼 goto 문 C에서는 무조건 점프 문이라고도 하며 함수 내의 한 지점에서 다른 지점으로 점프하는 데 사용할 수 있습니다.
goto 구문
Syntax1 | Syntax2 ---------------------------- goto label; | label: . | . . | . . | . label: | goto label;>
위 구문에서 첫 번째 줄은 컴파일러에게 레이블로 표시된 명령문으로 이동하거나 점프하도록 지시합니다. 여기서 라벨은 대상 구문을 나타내는 사용자 정의 식별자입니다. 'label:' 바로 뒤에 오는 문이 대상 문입니다. 위 구문에서 'label:'은 'goto label;' 문 앞에 나타날 수도 있습니다.
goto 문의 흐름도
goto의 예
씨
// C program to print numbers> // from 1 to 10 using goto> // statement> #include> > // function to print numbers from 1 to 10> void> printNumbers()> {> > int> n = 1;> label:> > printf> (> '%d '> , n);> > n++;> > if> (n <= 10)> > goto> label;> }> > // Driver program to test above function> int> main()> {> > printNumbers();> > return> 0;> }> |
>
>산출
1 2 3 4 5 6 7 8 9 10>
다) 돌아오다
그만큼 반품 C에서는 호출된 함수에 대한 실행 흐름을 반환합니다. 이 명령문에는 조건문이 반드시 필요하지 않습니다. 명령문이 실행되자마자 프로그램 흐름이 즉시 중지되고 호출된 위치에서 제어권이 반환됩니다. return 문은 void 함수에 대해 아무것도 반환할 수도 있고 반환하지 않을 수도 있지만, void가 아닌 함수의 경우 반환 값을 반환해야 합니다.
반환 흐름도

반품 흐름도
반환 구문
return [expression] ;>
반환의 예
씨
// C code to illustrate return> // statement> #include> > // non-void return type> // function to calculate sum> int> SUM(> int> a,> int> b)> {> > int> s1 = a + b;> > return> s1;> }> > // returns void> // function to print> void> Print(> int> s2)> {> > printf> (> 'The sum is %d'> , s2);> > return> ;> }> > int> main()> {> > int> num1 = 10;> > int> num2 = 10;> > int> sum_of = SUM(num1, num2);> > Print(sum_of);> > return> 0;> }> |
>
>산출
The sum is 20>