본문 바로가기

C언어

[C언어] 조건문(if문과 switch문) / 반목문(for문, while문) / break와 continue


조건문은 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예시와 같게 만들었습니다.