조건문은 if문과 switch문이 있는데, 반복문과 함께 가장 많이 사용되기 떄문에 정확하게 잘 알아두는 것이 좋다
if문의 사용 예시를 보겠다.
#include<stdio.h> void main() { int num; // 정수형 변수num을 선언 scanf("%d", &num); // num의 값을 입력받음 if (num > 0) { printf("num은 0보다 큽니다\n"); } else if (num < 0) { printf("num은 0보다 작습니다\n"); } else { // num == 0 printf("num은 0입니다\n"); } } |
위의 예시는 num이라는 정수형 변수를 입력받아 0보다 큰지, 작은지, 같은지를 알아볼 수 있다.
비교같은 경우 if -> else if -> else의 순서로 이루어진다
if와 else if 후에 나오는 소괄호안에 조건을 입력하고 조건이 참이면 안에 내용을 수행한다.
만약 if의 조건이 실행되었을경우 뒤에 있는 조건들은 확인하지 않는다
if문은 여러개를 중첩해서 사용가능하며, ||(OR)와 &&(AND)를 사용하여 조건을 명시할 수 있다.
switch의 사용 예시를 보겠다.
#include<stdio.h> void main() { int num; scanf("%d", &num); switch (num % 2) { case 0: printf("num은 짝수입니다\n"); break; case 1: printf("num은 홀수입니다\n"); break; default: printf("num은 홀수도 짝수도 아닙니다\n"); } } |
위의 예시는 num이라는 정수형 변수를 입력받아 홀수인지, 짝수인지를 알아볼 수 있다.
비교의 경우 위의 case부터 아래로 내려가는 순서로 이루어진다
switch안에 판단할 변수, 수식을 입력후 case와 같다면 실행한다.
break를 통해 중단할 수 있으며, 만약 break가 없다면 아래있는 구문도 모두 실행되기 때문에 주의해야 한다
그 외에 defalut를 사용하여 if에서 else와 같이 남은부분을 처리할 수 있다.
그럼 간단한 산술계산기를 만들어보아요!!!
#include<stdio.h> void main() { int num1, num2, result; char operator; printf("연산자의 종류 :+ - * / %\n"); printf("수식을 입력해주세요(Ex : 3 + 5)\n"); scanf("%d %c %d", &num1, &operator, &num2); if (operator == '+') { printf("결과 : %d\n", num1 + num2); } else if (operator == '-') { printf("결과 : %d\n", num1 - num2); } else if (operator == '*') { printf("결과 : %d\n", num1 * num2); } else if (operator == '/') { printf("결과 : %d\n", num1 / num2); } else if (operator == '%') { printf("결과 : %d\n", num1 % num2); } else { printf("잘못된 연산자입니다\n"); } } |
----------------------------------------------------------------------------------------------------------------
다음으로 반복문입니다!!
반복문은 for문과 while문이 있습니다. 가장 많이 사용되기 때문에 잘 숙지하셔야 합니다
for문 사용예시입니다.
#include<stdio.h> void main() { for (int i = 1; i < 6; i++) { printf("%d번째 줄입니다\n", i); } } |
컴파일 후
1번째 줄입니다 2번째 줄입니다 3번째 줄입니다 4번째 줄입니다 5번째 줄입니다 |
for문은 (초기식; 조건문; 증감식)으로 이루어져 있습니다. 실행순서는
초기식을 실행 -> 조건문이 참이면 문장을 실행하고, 거짓이면 for문을 벗어납니다.
문장을 실행한 후에는 증감식을 실행한 후 다시 조건문을 실행합니다
위의 예시에서 보면
int i = 1
i < 6? printf("%d번째 줄입니다\n", i):break 이때 i는 1이고 참이므로 실행
i++ // i = i +1
i < 6? printf("%d번째 줄입니다\n", i):break 이때 i는 2이고 참이므로 실행
i++ // i = i +1
i < 6? printf("%d번째 줄입니다\n", i):break 이때 i는 3이고 참이므로 실행
i++ // i = i +1
i < 6? printf("%d번째 줄입니다\n", i):break 이때 i는 4이고 참이므로 실행
i++ // i = i +1
i < 6? printf("%d번째 줄입니다\n", i):break 이때 i는 5이고 참이므로 실행
i++ // i = i +1
i < 6? printf("%d번째 줄입니다\n", i):break 이때 i는 6이고 참이므로 for문을 벗어납니다
for문은 몇개든 중첩해서 사용 가능하고, 증감식은 항상 조건문을 탈출할 수 있도록 설계해야 합니다. 안그러면 무한루프가 돌게되어 오류가 발생합니다
주로 초기식에는 i, j, k, l등을 많이 사용하며, 증감식에는 i++, i--등을 많이 사용합니다
while문 사용예시입니다
#include<stdio.h> void main() { int i = 1; while (i < 6) { printf("%d번째 줄입니다\n", i); i++; } } |
컴파일 후
1번째 줄입니다 2번째 줄입니다 3번째 줄입니다 4번째 줄입니다 5번째 줄입니다 |
if문과 같은 예시를 사용했습니다. if문과 다르게 초기식을 넣는 곳은 따로없고, 미리 변수를 선언해주어야합니다.
while문은 조건문을 중괄호안에 명시해주어야 하며, 조건문이 참이라면 안에 내용을 실행합니다.
주의해야할 점은 조건문을 탈출할 수 있도록 안에 내용에 증감식을 넣어주어야합니다
다음으로 반복문을 중단시키거나 한단계 건너뛰는 방법을 소개해드릴게요
바로 continue와 break입니다!!!
continue예시로 보여드릴게요
#include<stdio.h> void main() { int i = 0, num, sum = 0; printf("숫자를 입력해주세요\n"); scanf("%d", &num); while (i <= num) { i++; if (i % 2 == 0) { continue; } sum += i; } printf("1 ~ %d까지 홀수의 합 : %d\n", num, sum); } |
1부터 입력받은 숫자까지의 홀수의 합을 구하는 프로그램입니다. continue로 짝수일때마다 한단계 건너뛰었습니다.
다음으로 반목문을 중단시키는 break예시를 보여드릴게요
#include<stdio.h> void main() { int i = 0, num, sum = 0; printf("숫자를 입력해주세요\n"); scanf("%d", &num); while (1) { i++; if (i % 2 == 0) { continue; } sum += i; if (i == num) { break; } } printf("1 ~ %d까지 홀수의 합 : %d\n", num, sum); } |
위의 예시는 continue예시를 약간 변형해서 보여드린거에요. while문의 조건이 1이라는것은 무한루프를 의미하는데요.
if문과 break를 사용해서 continue예시와 같게 만들었습니다.
'C언어' 카테고리의 다른 글
[C언어] 연산자의 종류 (0) | 2018.12.23 |
---|---|
[C언어] 변수선언과 출력함수(printf) 및 입력함수(scanf) / 주석(설명)다는법 (0) | 2018.12.21 |
[C언어] 프로그램 작성을 위한 VisualStudio2017설치(콘솔종료, scanf문제 해결) (0) | 2018.12.21 |