오늘 포스팅할 내용은 C언어에서 조건문입니다.
조건문을 시작하기 전 참(true) or 거짓(false) 에 대해서 알아야 합니다.
C언어에서 참, 즉 true 의 의미는 0 (NULL) 이 아닌 모든 것을 참이라고 합니다.
즉, 1 2 3 -100... 기타 등등 이 모든 것이 참입니다. 거짓은 0 or NULL 만 거짓입니다.
자, 그러면 if 문에 대해서 알아보겠습니다.
[ if 문 ]
if 문을 쓸 때는 if ( 조건 ) 을 쓰게되는데요. 조건문 안에는 숫자가 들어갈 수 도 있고, 변수가 들어갈 수도 있습니다.
<Case 1>
if ( 1 ) // 참
<Case 2>
if ( 0 ) // 거짓
<Case 3>
int num = 0;
if ( num ) // 거짓
if ( num > 0 )
위와 같이 활용할 수 있습니다.
if 문을 쓸 때, && || 을 보통 같이 많이 사용하게 되는데요.
&& : And 조건. 즉, 조건을 모두 만족 시켜야지만 참이 됩니다.
|| : OR 조건. 조건을 둘 중 하나만 만족 시키면 참이 됩니다.
if ( a >= 10 && a <=20 )
-> 변수 a 가 10보다 크면서 20보다는 작아야 하니깐, 10<=a<=20 이 조건과 같은 의미입니다.
if ( a != 0 || b != 0 )
-> 변수 a가 0이 아니거나 또는 b가 0이 아닐 때입니다. 즉, a 나 b 둘 중 하나가 0 이 아니면 참이 되는 조건입니다.
#include <stdio.h>
void main()
{
int num = 1;
while(1)
{
if ( num != 0 ) // 처음에 num이 1 이기 때문에 해당 조건문이 통과됩니다.
{
printf("숫자 입력 : ");
scanf("%d", &num);
printf("입력하신 숫자는 0이 아닌 숫자 : %d 입니다.\n", num);
}
else
break;
}
}
위의 프로그램은 사용자가 0인 숫자를 입력할 때까지 종료가 되지 않는 간단한 프로그램입니다.
(while 문은 반복문인데 뒤에서 다시 소개하겠습니다.)
if문과 같이 엮어 쓰는 문법을 또 소개하겠습니다.
if~else
if~else if 입니다.
먼저 else 는 if문이 거짓일 경우 호출됩니다. 예를 들면,
int num = -10;
if ( num > 0 )
printf("0보다 큰 숫자입니다.\n");
else
printf("0 보다 작은 숫자입니다.\n");
num 이 -10 이므로 거짓이겠죠? 그러면 else 문을 타서 "0보다 작은 숫자입니다" 라는 printf 문이 호출될겁니다.
else if 문도 비슷한데요. else if 문을 말로 하면 "바로 인접한 if문이 거짓이면서, 이 조건을 만족한다면" 이라는 뜻입니다.
어떻게 보면 인접한 if 문의 거짓 조건이 &&(AND) 가 된다고 할 수 있습니다.
num = 15;
if ( num < 10 )
// 10보다 작은 숫자
else if ( num < 20 )
// 10<num<20
else if (num < 30 )
// 20<num<30
else
// 30 < num
위와 같이 활용할 수도 있고, 다양하게 사용 할 수 있습니다.
if 문 안에 실행하는 명령어가 한 개일 때는 {} 가 필요 없지만, 2개 이상일 때는 {} 이 꼭 필요합니다.
score = 8;
if ( score > 10 )
printf("안녕하세요\n");
printf("반갑습니다\n");
위와 같은 경우 "반갑습니다" 가 출력됩니다.
* 참고로 if~else 문은 가장 인접한 if문의 조건에만 else 가 된다는 점 주의하세요. 실 사용에서도 실수하는 경우가 많습니다. 그래서 {} 영역을 구분해줘서 쓰는게 가장 편하죠.
if 문을 활용한 연습을 해보시려면 해당 문제를 한 번 해보세요.
1. 숫자를 입력받는다.
2. 입력받은 숫자 범위
60~70 : D
70~80 : C
80~90 : B
90~100 : A
해당 숫자 범위를 만족할 경우, 학점을 출력시켜주는 프로그램입니다.
65 점을 입력하면 'D' 학점이라고 출력이 되어야겠죠?
연습문제를 if문만 써서 해보셔도 되고, if~else if 문을 써보셔도 됩니다.
같은 문제여도 코딩을 하는 방법은 사람마다 다르답니다. ^^
[ switch 문 ]
switch 문은 일단 예제를 보면서 설명을 하겠습니다.
switch(변수)
{
case 값:
{
실행문;
break;
}
case 값:
{
실행문;
break;
}
case 값:
{
실행문;
break;
}
default:
{
실행문;
break;
}
}
변수의 값이 case 값 과 일치하면 문장이 실행됩니다. 만약에 break; 가 없다면 모든 case 안의 실행문이 실행됩니다.
break; 문은 엄청 많이 쓰는 문법인데, 해당 말 그대로 "멈춘다" : 실행 그만하고 빠져나가자. 의 의미입니다.
if 문 처럼 case 문 안에 조건을 넣을 수는 없습니다. 단지 값만 넣을 수 있습니다.
숫자 or 'A' 단일 문자만요.
아, default 는 case 문안의 모든 값들이 아니면 실행됩니다. 이제 아래의 예제를 보시면 이해가 되실 겁니다.
#include <stdio.h>
void main()
{
int score = 90;
switch(grade/10)
{
case 9:
{
printf("와우, 가수이십니다.\n");
break;
}
case 8:
{
printf("노래를 정말 잘 부르시네요.\n");
break;
}
case 7:
{
printf("아주 좋은 노래입니다.\n");
break;
}
case 6:
{
printf("다시 한 번 도전해보세요.\n");
break;
}
default:
{
printf("노래 말고 같이 코딩을 해봐요.\n");
break;
}
}
}
case9:
case8:
{
명령문;
break;
}
위와 같이 사용할 수도 있습니다. 이런 경우, 2개의 case 둘다 같은 명령문이 실행됩니다.
자 그리고, 여기서 C언어에서 조건문 안에 사용하는 수식들이 있는데 많이 사용하는 것만 적어보도록 하겠습니다.
수식 | 의미 |
<, <=, >, >= | 크다, 작다, 크거나 같다, 작거나 같다. |
== | 같다 |
!= | 다르다 |
&& | 그리고(AND) |
|| | 또는(OR) |
! | 부정 ex) !1(참) 거짓을 의미 |
- 요약
C언어에서 0을 제외한 모든 값은 참이다!
if(조건) 조건이 참이면 if문이 실행된다. switch 문은 조건이 아닌 값만 case 로 나눌 수 있다. 근데 필요할 경우 break; 를 꼭 써야한다.
지금까지 if 문과 switch 문의 기본 설명이 끝났습니다.
그럼 20000.
6강 C언어 포인터의 개념과 사용 (0) | 2020.01.28 |
---|---|
5강 C언어 배열의 개념과 사용 (0) | 2020.01.23 |
4강 C언어 반복문, for문, while문, do~while문 (0) | 2020.01.21 |
2강 C언어 printf , C언어 scanf (0) | 2020.01.15 |
1강 C언어 자료형(int, char, double..) (0) | 2020.01.13 |