LetITGo
자료구조 - C언어 조건문에 대해 알아봅시다 (if, else if, 중첩 if, switch ) 본문
안녕하세요 오늘도 자료구조와 알고리즘을 공부하면서 알아야 되는 내용을 알려드리게 되었습니다. 제어문 중 조건문에 대해서 알아볼 것입니다.
조건문에는 크게 두 가지가 있습니다. if문과 switch 문이 있습니다. if문은 if, else문과 중첩 if문 등이 있습니다.
if 문
먼저 if 문입니다. 구성은 조건식과 문장으로 구성됩니다. 작동원리는 간단합니다. if문이 실행되면서 조건식의 참, 거짓을 확인합니다. 만약 조건식이 참인 경우에는 if 문안에 있는 문장이 실행되고 거짓이라면 실행되지 않고 다음 부분으로 넘어갑니다.
if 문안에는 문장 하나만이 아닌 여러 문장, 반복문도 가능합니다.
if-else 문
이번에는 if-else 문에 대해 배워보겠습니다.
여러 조건이 있을 경우에 주로 사용됩니다. 원리는 if의 조건의 참 거짓을 판단하고 참인 경우에 if 안의 문장만 실행하고 거짓이라면 else 안에 있는 문장을 실행합니다. 만약 if와 else 뿐이라면 참일 때 if, 거짓이면 else라고 생각할 수 있습니다.
간단한 예제로 홀수 짝수 구별 프로그램을 만들어 보았습니다. if안에 있는 조건식은 짝수인지 아닌지를 구별합니다. 짝수라면 if 안의 문장이 출력되고 홀수라면 else 안의 문장이 출력됩니다.
조건이 2가지 이상인 if else 문
조건이 2가지 이상인 경우에는 else if를 이용할 수 있습니다. 먼저 조건 1을 따지고 참이면 문장 1을 출력합니다. 거짓이라면 조건 2를 따지고 거짓이면 조건 3을 따집니다. 모든 조건이 거짓이면 else문이 실행됩니다. 만약 한 가지의 조건이라도 만족하면 그다음 조건들은 따지지 않습니다. 또 다른 조건도 따지려면 새로운 if문을 만들어야 합니다.
중첩 if 문
이번에는 중첩 if 문에 대해서 알아보겠습니다.
말 그대로 if문안에 if문이 있는 경우입니다. 이 예시의 경우에는 파란색 if문의 참과 거짓을 먼저 따집니다. 참이면 빨간색 if문의 참과 거짓을 따지고 거짓이라면 바로 파란색 else문이 실행됩니다.
switch문
이번에는 switch문에 대해서 알아보겠습니다.
여러 조건중 하나를 선택할 때 주로 이용됩니다. case라는 것을 이용합니다. 먼저 switch문에서 괄호 안에는 숫자로 계산되는 값이 있어야 합니다. 그 값이 0이고 1이고 2인지를 따지는 것입니다. 그 값이 0이면 case 0가 실행되고 1이면 case1이 실행되고 2이면 case 2가 실행되는 것입니다. 그리고 해당하는 경우가 없으면 default가 실행됩니다. 각 케이스에서 break는 case조건의 문장을 실행하고 switch문을 빠져나올 때 이용됩니다. break가 없으면 나올 때까지 모든 케이스를 실행합니다. 그래서 break가 매우 중요합니다. 하지만 만약 1,2 케이스가 모두 해당되면 1의 break를 빼서 1,2가 모두 실행되게 할 수 있습니다.
if, else-if문과 switch문의 차이는?
그럼 else if문과 switch문은 차이가 무엇일까요 switch문에서 case에는 변수가 사용될 수 없고 수식도 안되면서 실수, 문자열도 안됩니다. 오로지 양의 정수만 가능합니다.
실제 예시
예시로 else if를 이용하여 점수별 학점을 알려주는 프로그램을 설계해보겠습니다. 저는 보통 조건문에서 if문을 이용합니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int score;
printf(" 점수를 입력하세요 ");
scanf("%d", &score);
if (score >= 95)
printf(" A 학점 \n");
else if (score >= 85)
printf("B 학점 \n");
else if (score >= 75)
printf("C 학점 \n");
else if (score >= 65)
printf("D 학점 \n");
else
printf("F 학점 \n");
return 0;
}
이때까지 C언어에서 제어문을 담당하는 반복문과 조건문에 대해서 알아보았습니다.
제어 문중에 반복문이 궁금하다면?
2020/08/25 - [전공지식/자료구조 와 알고리즘] - 자료구조 - C언어 반복문에 대해 알아보자
'전공지식 > 자료구조와 알고리즘' 카테고리의 다른 글
C언어 포인터 Pointer에 대해 알아봅시다 (0) | 2020.08.28 |
---|---|
자료구조 - C언어 순환, Recursion에 대해 알아보자 (예제, 문제포함) (0) | 2020.08.27 |
자료구조 - C언어 반복문에 대해 알아보자 (0) | 2020.08.25 |
자료구조 - 배열이란? / 다차원 배열 / 2차 배열 / 3차배열 / 2차 배열 입력, 출력 / 배열 역순 출력 (0) | 2020.07.16 |
자료구조 - 배열이란? / 배열 선언 / 배열 입력, 출력 / 배열 초기화 / 배열 복사 (0) | 2020.07.15 |