제어문(if조건문)

지환·2021년 12월 21일
0

C언어

목록 보기
3/37
post-thumbnail

제어문은 프로그램의 실행 흐름을 제어하는 문법이다.

제어문이란 주어진 조건에 따라 코드 블록을 실행하거나 반복실행 할 때 사용한다. 일반적으로 코드는 위에서 아래로 순차적으로 실행된다. 제어문은 코드의 실행순서를 인위적으로 제어할 수 있다. 예를들어 우리가 학교에 갈 때 보통은 그냥 가방만 챙겨서 가지만, 비가 오는 날은 우산도 챙겨야 하고 우산이 없다면 어떻게 할 것인지 또 다른 방법을 생각해야 한다. 이렇게 평범해 보이는 상황에서도 여러 가지 조건에 따라 기존에 정해 놓은 형식과 다르게 추가 작업을 하거나 다른 형식으로 진행한다.

제어문 종류

  • 조건문:예외 상황에 대처하기 위한 문법이다.
    조건문은 특정 조건을 부여하고 해당 조건을 만족하면 지정한 문장을 수행하는 문법이다. 일반적으로 조건은 수식으로 표현하며, 이 수식의 진릿값이 참(1)이면 지정한 문장을 수행하게 된다.

  • 반복문:반복 행위를 효과적으로 표현하기 위한 문법이다.
    일정한 형태의 작업을 반복해서 수행해야 할 때 반복 조건을 부여하고, 해당 조건이 거짓이 될 떄까지 지정한 문장을 계속 수행하는 문법이다.
    대표적으로 for, while, do~while문이 있다.

if조건문의 구조

  • if(조건 수식) 명령문이다. ()괄호 안에 있는 조건 수식의 결과 값이 참으로 나오면 그 뒤에 명시한 명령문 1개를 수행하는 문법이다.
  • 여기에서 참은 0이 아닌 모든 값을 의미한다.

* 단일 문장을 수행하는 if조건문

  • 조건 수식의 결과 값이 참일 때 하나의 단일 명령문만 수행한다.
  • 조건 수식의 결과 값이 참이면
    명령문1 -> 명령문2 -> 명령문3 순서로 실행한다. (참)
    명령문1 -> 명령문3 (거짓)

<코드 실행>

#include <stdio.h>

int main()
{
  int data = 5;
  if(data >3) printf("data는 3보다 큰 수 입니다.\n");
  printf("작업종료\n");
}

<결과>

* 복합 문장을 수행하는 if조건문

  • 조건 수식의 결과 값이 참일 때, {}로 모아 놓은 명령문들을 모두 수행한다.
  • 위의 경우에 조건 수식의 결과 값이 참이면
    명령문1->명령문2->명령문3->명령문4의 순서로 실행하고,
  • 조건 수식의 결과 값이 거짓이면
    명령문1->명령문4 순서로 실행한다.
<조건 수식이 참일  복합 명령 문장 실행하기>
#include <stdio.h>

void main()
{
	int score = 72;
	char grade;
	if (score >= 90)
	{
		grade = 4;
		printf("점수는 %d이고 등급은 %c이다.\n", score, grade);

	}
	printf("작업종료\n");

<결과>

if 조건문을 사용할 떄 주의할점

대입 연산자와 관계 연산자를 혼동하는 경우가 많다.

  • 대입 연산자 오류

프로그램 수치는 같은지 확인할 때 == 관계 연산자를 사용한다. =은 대입 연산자며, 잘못 쓰는 경우가 많다. 이와 같은 문제를 해결하기 위해선

if(3 == data) 작성하는 것이 좋다.

이렇게 하면 실수를 하더라도, "상수에 값을 대입할 수 없다"는 문법 오류가 발생한다.

  • 세미콜론으로 인한 오류

<출처 : DO IT C언어 - 김성엽>

profile
아는만큼보인다.

0개의 댓글