C 언어의 조건문: if, else, 중첩 if (예제 포함)

⚡ 스마트 요약

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

  • 🔤 조건문: if 문은 조건이 0이 아닌 참일 때만 해당 블록을 실행하며, 0은 거짓을 의미합니다.
  • 🔀 그렇지 않다면: if-else 문은 거짓 분기를 추가하여 조건이 참일 때 한 블록을 실행하고 거짓일 때 다른 블록을 실행합니다.
  • ⚖️ 관계 연산자: 6개의 연산자(<, <=, >, >=, ==, !=)는 모든 조건식이 검사하는 부울 표현식을 구성합니다.
  • 🪜 그렇지 않으면 사다리: 중첩된 else-if 문은 여러 표현식을 위에서 아래로 검사하고 첫 번째 참인 분기 또는 기본 else를 실행합니다.
  • 삼항 연산자: `?:` 조건식은 두 가지 값 중 하나를 반환하는 간결한 if-else 문을 한 줄에 작성합니다.
  • 🤖 AI 지원: GitHub Copilot은 if-else 문 초안을 작성하고 검토하며, 중괄호가 누락된 부분을 표시하고 더 깔끔한 조건을 제안합니다.

C 언어 조건문: IF, IF Else 및 중첩 IF Else

C의 조건문이란 무엇입니까?

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 구문을 사용하여 두 숫자가 같은지 확인하는 방법을 보여줍니다.

C 언어로 작성된 if 문 순서도

  1. 위 프로그램에서는 값이 각각 1, 2인 num1, num2의 두 변수를 초기화했습니다.
  2. 그런 다음 테스트 표현식과 함께 if를 사용하여 어떤 숫자가 가장 작고 어떤 숫자가 가장 큰지 확인했습니다. if 구문에서 관계식을 사용했습니다. num1의 값이 num2보다 작으므로 조건은 true로 평가됩니다.
  3. 따라서 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 문

C 언어의 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

C 언어로 작성된 if-else 문의 예시 출력

  1. 변수를 값 19로 초기화했습니다. 'C' 프로그램을 사용하여 숫자가 10보다 큰지 작은지 알아내야 합니다. 이를 위해 if-else 구조를 사용했습니다.
  2. 여기서는 값을 10과 비교해야 하기 때문에 num<10이라는 조건을 제공했습니다.
  3. 보시다시피 첫 번째 블록은 항상 참 블록입니다. 즉, test-expression의 값이 참이면 첫 번째 블록인 If가 실행됩니다.
  4. 두 번째 블록은 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 구문을 사용하여 결과를 인쇄합니다.

C 언어에서 중첩 if-else 문

  1. 먼저 값이 1인 변수 num을 선언했습니다. 그런 다음 if-else 구문을 사용했습니다.
  2. 바깥쪽 if-else 문에서 주어진 조건은 숫자가 10보다 작은지 확인합니다. 조건이 참일 경우에만 안쪽 블록이 실행됩니다. 이 경우 조건이 참이므로 안쪽 블록이 처리됩니다.
  3. 내부 블록에는 변수에 1이라는 값이 있는지 확인하는 조건이 다시 있습니다. 조건이 참이면 if 블록이 실행되고, 그렇지 않으면 else 블록이 실행됩니다. 이 경우 조건이 참이므로 if 블록이 실행되고 값이 출력 화면에 출력됩니다.
  4. 위 프로그램은 변수의 값을 출력하고 성공적으로 종료됩니다.

값을 변경해 보세요 변수 프로그램이 어떻게 작동하는지 살펴보세요.

참고: 중첩된 if-else 문에서는 여러 개의 if-else 문이 얽혀 있기 때문에 들여쓰기에 특히 주의해야 합니다. 들여쓰기를 제대로 하면 각 문을 구분하기 어려워집니다. 적절한 들여쓰기는 프로그램을 읽기 쉽게 만들어 줍니다.

중첩된 Else-if 문

C 언어에서 중첩된 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 래더 구조를 사용했습니다.

  1. 마크가 있는 변수를 초기화했습니다. else-if 래더 구조에서는 다양한 조건을 제공했습니다.
  2. 변수 표시의 값은 첫 번째 조건과 비교됩니다. 이는 해당 조건과 관련된 명령문이 출력 화면에 인쇄되기 때문입니다.
  3. 첫 번째 테스트 조건이 거짓으로 판명되면 두 번째 조건과 비교됩니다.
  4. 이 과정은 모든 표현식이 평가될 때까지 계속되며, 그렇지 않으면 제어 흐름이 else-if 문 밖으로 나가고 기본 문장이 출력됩니다.

값을 수정해 보고 출력의 변화를 확인하십시오.

자주 묻는 질문

if-else 문은 범위 및 관계 검사를 포함하여 모든 부울 표현식을 테스트합니다. 스위치…케이스 하나의 변수를 고정된 상수 값과 비교하며, 많은 경우 더 빠른 점프 테이블로 컴파일되는 경우가 많습니다.

중괄호 없이 if 문이 중첩될 때, else 문이 어느 if 문에 속하는지 불분명해지는 문제가 발생합니다. C 언어에서는 else 문이 항상 가장 가까운 짝이 없는 if 문과 짝을 이룹니다. 중괄호를 추가하면 이러한 혼란이 사라집니다.

네. 논리 연산자는 조건을 결합합니다. &&는 양쪽 조건이 모두 참이어야 하고, ||는 적어도 한쪽 조건이 참이어야 하며, !는 결과를 반전시킵니다. 예를 들어, if (age > 18 && citizen)는 하나의 if 문에서 두 조건을 함께 검사합니다.

본문이 단일 문장일 경우 중괄호는 선택 사항이며, 이 경우 C 언어는 다음 줄만 실행합니다. 두 개 이상의 문장을 묶을 때는 중괄호가 필수적입니다. 하지만 항상 중괄호를 사용하는 것은 논리 오류를 방지하는 안전한 습관입니다.

단락 평가는 결과가 알려지는 즉시 중지됩니다. && 연산자를 사용하면 왼쪽 항이 거짓일 경우 오른쪽 항을 건너뛰고, || 연산자를 사용하면 왼쪽 항이 참일 경우 오른쪽 항을 건너뜁니다. 이는 불필요한 작업과 위험한 동작을 방지합니다.

네. else-if 조건문은 위에서 아래로 순차적으로 평가되며, 첫 번째 참인 조건에서 멈춥니다. 광범위한 조건을 구체적인 조건보다 먼저 배치하면 구체적인 경우를 놓칠 수 있으므로, 가장 구체적인 조건부터 가장 일반적인 조건 순으로 테스트를 진행해야 합니다.

네. AI 코딩 도우미는 주석에서 조건문을 작성하고, 긴 if-else 문을 더 깔끔한 구조로 변환하며, = 대신 ==를 사용하는 등의 오류 가능성을 알려줍니다. 하지만 생성된 로직을 신뢰하기 전에 항상 테스트해 보세요.

GitHub 부조종사 주석이나 주변 코드에서 if, else-if 및 중첩 조건을 자동 완성합니다. 관계식과 논리식을 제안하고 누락된 중괄호를 추가할 수 있지만, 각 제안을 검토해야 합니다.

이 게시물을 요약하면 다음과 같습니다.