OneDev

[C] 10. 조건문 - if 문 본문

Language/C

[C] 10. 조건문 - if 문

one_dev 2022. 7. 20. 18:22

1. if 조건문이란?

조건문이란 말 그대로 특정 조건을 만족할때 실행되도록 하는 문장이다.

조건문에는 여러가지가 있지만 이번 포스팅에서는 if  조건문에 대해 알아보도록 하자.

 

2. if 조건문의 기본 구조

if 조건문의 기본적인 구조는 다음과 같다.

 

(1) if : if 조건문의 시작을 알리는 부분이다.

(2) 조건은 소괄호() 안에 작성한다. 이 때 조건이 참이면 1을, 거짓이라면 0을 반환한다.

따라서 조건문을 if (1) 또는 if (0) 과 같이 작성할 수 도 있다.

(3) 마지막으로 수행할 동작을 중괄호{} 안에 작성한다. ("명령" 이라고 한다)

 

if 조건문은 if 문 속의 조건이 0(거짓)인지 1(참) 인지에 따라서 실행유무를 판별하는 조건문인것이다.

 

간단한 if 조건문의 예시를 보자.

if (a == 3){
	printf("a는 3입니다");
}

만약 a라는 변수의 값이 맞다면 3을 "a는 3입니다" 라는 문장을 출력할 것이다.

 

 

3. 관계연산자 와 if문

if 문 속 조건은 주로 관계연산자를 이용해 작성된다. if 문에 주로 사용되는 관계연산자에 대해 알아보자

  • < : 좌변이 우변보다 작다 or 우변이 좌변보다 크다 ==> (예) 3 > 2  : 참 , 4 < 1 : 거짓
  • > : 좌변이 우변보다 크다 or 우변이 좌변보다 작다
  • <= : 좌변이 우변보다 작거나 같다 or 우변이 좌변보다 크거나 같다 (주의 : =< 로 쓰면 안됨. 헷갈린다면 "작거나 같다" 를 순서대로 쓴다고 생각하자)
  • >= : 좌변이 우변보다 크거나 같다 or  좌변이 우변보다 작거나 같다
  • == : 좌변과 우변이 같다.
  • != : 좌변이 우변과 같지 않다.

위에서 작다, 크다, 같다 등등으로 적어놓았지만, 정확히는 참이면1, 틀리면0을 반환하는 것이다.

예를 들어 3 == 1 과 같은 조건은 거짓이므로 0을 반환한다.

 

4. if - else 문

사실 조건문을 사용할 때 조건 하나만 사용하는 경우는 드물고 대개 여러가지 조건을 사용한다.

예를 들면 이런식이다.

학생의 시험 점수를 입력받아서 100점 ~90점 사이면 A, 89점 ~80점 이면 B, ... 와 같이 자동으로 성적을 매기는 프로그램을 만들고 싶다고 가정하자. 

입력 받은 점수를  각 구간별로 나누어 자동으로 학점이 나오게 하고싶은데, 위에서 배운 if 문에는 오직 한 가지 조건만 걸 수 있다. 이래서야 90점 이상인 학점은 A를 받고 나머지 학생들은점수 입력이 안되는 대참사가 일어날 것이다.

 

이렇듯 비교할 조건을 여러개 사용하고 싶을 때 사용할 수 있는 것이 if - else 문이다.

if - else문에서 가장 중요한 것은 else문은 앞의 if 문이 참이 아닐때 실행된다는 것이다.

if - else 문의 기본적인 구조는 다음과 같다

if (조건) {수행할동작 1}
else (수행할동작 2)

먼저 if 문 속 조건을 판별하고 조건이 참일시 수행할동작 1을 수행한다.

만약 if 문 속 조건이 거짓이라면 수행할동작2 를 수행한다.

 

 

여기서 더 많은 조건들로 경우를 나누고 싶다면 else if 를 사용하면 된다.

else if 문은 앞의 if문 혹은 else if 문이 참이 아닐때 실행된다.

n개의 조건에 대한 구문을 작성하는 방법은 기본적으로 아래와 같다

if (조건1) {동작1}
else if (조건2) {동작2}
else if (조건3) {동작3}
:::
:::
:::
else if (조건 n-1) {동작n-1}
else {동작 n} // 마지막도 else if 로 구체적인 조건을 걸어줄 수 있다

간단한 예시를 보자.

아래는 n 값에 따라 n의 값이 얼만지 알려주는 프로그램이다.

if (n==1) printf("n의 값은 1입니다\n");
else if (n==2) printf("n의 값은 2입니다\n");
else if (n==3) printf("n의 값은 3입니다\n");
else if (n==4) printf("n의 값은 4입니다\n");
else if (n==5) printf("n의 값은 5입니다\n");
else if (n==6) printf("n의 값은 6입니다\n");

 

 

 

Comments