Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 IT일지

조건문(if문) 본문

프로그래밍 언어/C언어

조건문(if문)

세레프 2023. 2. 8. 06:20

 프로그램에는 위에서 아래로, 왼쪽에서 오른쪽으로 코드를 읽는 흐름이 존재한다. 하지만 이런 흐름을 제어하는 문법이 존재하는데, 이를 제어문이라고 한다. 제어문에는 조건문(if문, switch문), 반복문(do문, while문), 분기문(break문, continue문)이 있으며, 이 글은 조건문 중에서 if문에 대해서 설명할 것이다.

  조건문 - if문

 일단 조건문이란 무엇이냐? 조건식의 결과에 따라 실행할 문장을 결정하는 문법으로, 어떤 명령문을 조건적으로 실행해야 하는 경우에 사용한다.

 

 if문의 경우에는, 조건식을 결과값이 참(1) 혹은 거짓(0)이 나오는 비교연산자나 논리연산자를 사용하며, 3가지 구조식이 있다.

구조식 1 
if(조건식){
조건식이 참일때 실행할 명령 1;
}

명령 2
명령 3

구조식 2
if(조건식){
조건식이 참일때 실행할 명령 1;
}

else{
조건식이 거짓일 때 실행할 명령 2
}

명령 3
명령 4
구조식 3
if(조건식1){
조건식1이 참일때 실행할 명령 1;
}

else if(조건식2){
조건식 1이 거짓이고, 조건식2이 참일때 실행할 명령 2;
}

else{
조건식2이 거짓일 때 실행할 명령 3;
}

명령 4
명령 5

 3개의 구조식을 보면 공통적으로 나타나는 점이 있다.

  • if뒤에 조건식이 붙으며, 해당 조건식이 참일 경우 중괄호{}안에 있는 명령을 수행한다는 점,
  • else는 위의 조건식이 거짓일 경우 뒤에있는 명령를 수행한다는 점,
  • if문과 별개로 따로 명령을 수행할수 있다는 점

 이를 통해 순서도를 작성하면 다음과 같다.

왼쪽부터 구조식 1의 순서도, 구조식 2의 순서도, 구조식 3의 순서도 (diagrams.net 사용)

#include<stdio.h>

void main() {
	int a;
	printf("점수 입력:");
	scanf("%d", &a);
	if (a > 90) {
		printf("grade A\n");
	}
	else if (a >= 80) {
		printf("grade B\n");
	
	}
	else if(a>=70){
		printf("grade C\n");
	}
	else if (a >= 60) {
		printf("grade D\n");
	}
	else {
		printf("grade F\n");
	}
}

위의 코드소스의 순서도(diagrams.net 사용)

 위의 코드소스는 구조식 3을 여러번 사용한 코드소스이다. 만약 점수를 75점을 넣게 되면, 조건 1인 "a>90", 조건 2인 "a>=80"은 거짓이 되고, 14번째 줄인 조건 3 "a>=70"에서 참이 된다. 따라서 "grade C"가 출력이 되는 것이다.

 

 if문의 블록 안에 명령을 대신해서 if문을 만들어 복잡한 코드소스를 만들어 낼 수 있다. 

#include<stdio.h>

void main() {
	int gender;
	float  height, weight, PIBW;
	printf("성별(남성의 경우:1, 여성의 경우:2 ):");
	scanf("%d", &gender);
	printf("키(단위cm):");
	scanf("%f", &height);
	printf("몸무게(단위kg):");
	scanf("%f", &weight);

	if (gender = 1) {
		PIBW = (height/100) * (height/100) * 22;
		printf("PIBW:%.2f\n", PIBW);
		if (PIBW > weight) {
			printf("당신은 평균체중보다 낮은 체중을 가지고 있습니다.");
		}
		else if (PIBW == weight) {
			printf("당신은 평균체중입니다.");
		}
		else {
			printf("당신은 평균체중보다 높은 체중을 가지고 있습니다");
		}
	}
	else {
		PIBW = (height / 100) * (height / 100) * 21;
		printf("PIBW:%.2f\n", PIBW);
		if (PIBW > weight) {
			printf("당신은 평균체중보다 낮은 체중을 가지고 있습니다.");
		}
		else if (PIBW == weight) {
			printf("당신은 평균체중입니다.");
		}
		else {
			printf("당신은 평균체중보다 높은 체중을 가지고 있습니다");
		}
	}
	}

 그리고 이러한 복잡한 소스코드를 쉽고 간단하게 보기 위해서 순서도가 필요한 것이다.

'프로그래밍 언어 > C언어' 카테고리의 다른 글

반복문(while문)  (0) 2023.02.10
조건문(switch문)  (0) 2023.02.09
연산자(비트, 삼항, 기타 등등)  (0) 2023.02.07
연산자(산술, 대입, 증감, 비교, 논리)  (0) 2023.02.06
기타 입출력함수  (0) 2023.02.05
Comments