if, else if는 프로그램의 흐름을 조건에 따라 컨트롤, 제어할 수 있다는 점에서 반드시 필요한 내용입니다. if, else if에 대해 알아보도록 하겠습니다.
if문의 목적과 if문 사용하기
앞 서 for문과 while문을 통해 반복문을 배웠습니다. 두 반복문은 조건을 만족하는 경우 반복문을 실행하는 것이었는데요. 해당 조건에 따라만 동작하기 때문에 반복문의 '선택적 실행'을 할 수는 없습니다. 하더라도 중첩을 여러 번하여 불필요한 수식이 들어가게 됩니다.
이 때, if, else if는 조건에 따라 '선택적'으로 프로그램을 실행합니다. 필요한 부분만 실행할 수 있기 수월하기 때문에 유용하게 쓰입니다. 입력을 받은 아래 예시에서 살펴보도록 하겠습니다. 아래 예시는 입력된 값을 양수, 0, 음수 중 판독하는 예시입니다.
#include <stdio.h>
#pragma warning(disable:4996)
int main(void)
{
int num;
printf("정수 입력\n");
scanf("%d", &num);
if (num < 0)
printf("값이 음수입니다.");
if (num == 0)
printf("값이 0입니다.");
if (num > 0)
printf("값이 양수입니다.");
return 0;
}
보면 int 선언된 num 값을 입력받고 이를 양수, 0, 음수로 판독하는 것을 알 수 있습니다. if () 내의 조건을 보고 아래 영역을 실행하는 것입니다. if문이 3개가 있었지만 하나의 조건만 만족하여 하나만 실행되었음을 알 수 있습니다.
if, else문 사용하기
위 예시에서는 여러 if문이 있고 이 조건에 만족하면 조건에 해당하는 구문이 실행되는 것을 알 수 있었습니다. 여기서 if ~else문을 사용해 볼 필요가 있습니다. if ~else문에 대한 목적은 if조건이 '아니라면 모든 경우에 대해' 묶어서 실행하는 것입니다.
아래 예시를 살펴 보도록 하겠습니다.
#include <stdio.h>
#pragma warning(disable:4996)
int main(void)
{
int num;
printf("정수 입력\n");
scanf("%d", &num);
if (num < 0)
printf("값이 음수입니다.");
else
printf("값이 0 또는 양수입니다.");
return 0;
}
else 처리 시 '음수인 경우가 아닌 모든 경우'에 속하므로 0 또는 양수라는 출력으로 묶었습니다. 이렇듯 if문 조건이 아닌 모든 경우에 대해 한번에 처리할 수 있습니다.
if, else if, else문 사용하기
else if는 앞 if 조건문이 만족하지 않을 때 사용한다. 예를 들어 if(조건1)...else if(조건2)...else로 구성한 경우, else if(조건2)의 역할은, 조건1이 만족하지 않은 나머지 중 '조건2를 만족하는 경우'를 잡아낼 수 있다. 마음껏 추가할 수 있다. 참고로, 조건2가 만족하는 경우 else는 건너뛴다.
#include <stdio.h>
#pragma warning(disable:4996)
int main(void)
{
int num;
printf("정수 입력\n");
scanf("%d", &num);
if (num < 0)
printf("값이 음수입니다.");
else if (num == 0)
printf("값이 0입니다.");
else
printf("값이 양수입니다.");
return 0;
}
else if (num == 0)인 경우로 사용하였습니다. if에 연결하여 사용할 수 있고 조건을 특정화하여 사용할 수 있는 장점이 있습니다.
삼항 연산자 사용하기
if~else문을 일부 삼항 연사자로 쉽게 표현할 수 있다.
구조는 값 = (조건1) ? 출력1 : 출력2
특히 값을 지정할 때의 예시는 아래와 같다. 아래 예시는 양수일 때 양수의 의미로 1을 출력하고, 이 외에는 0을 출력하는 구문이다.
#include <stdio.h>
#pragma warning(disable:4996)
int main(void)
{
int num;
int ans;
printf("정수 입력\n");
scanf("%d", &num);
ans = (num > 0) ? 1 : 0;
printf("%d", ans);
return 0;
}
ans = (num > 0) ? 1: 0; 구조를 통해 num 정수가 0보다 큰 경우 1, 이 외 경우 0으로 출력되도록 하였습니다.
'C C++ > C언어 기초' 카테고리의 다른 글
C언어 포인터 이해의 시작 (포인터 정의, 포인터 선언, 포인터 저장 방식, 포인터 자료형, & 연산자, *연산자) (0) | 2022.05.01 |
---|---|
C언어 - switch문 사용과 예제 (0) | 2022.03.27 |
C언어 for 반복문의 모든 것 (2) | 2022.03.20 |
C언어 while 반복문의 모든 것 (feat. while문 예시, do~while문) (0) | 2022.03.20 |
C4033 에러: 컴파일러 경고(수준 1) (0) | 2022.01.20 |
댓글