5/6 조건문, 반복문

JK·2023년 5월 7일

조건문

C언어에서의 조건문은 2가지 종류가 있습니다

  • if문
  • switch문

if문

선택을 유도하거나 경우를 나누고 싶을 때 if문을 사용

else는 영어 뜻 그대로 "그 밖의, 다른"입니다.
if에 해당하지 않는 경우를 뜻합니다.
그렇기 때문에, else는 따로 ()을 사용하지 않습니다. 나머지의 모든 경우에 실행되기 때문입니다.

만약 else이외에 다른 조건이 더 있을 때 필요한 것이 else if입니다.
"아니면 만약"이라는 뜻을 가지고 있습니다.

#include <stdio.h>
int main() {
	int score;

	printf("당신의 수학점수를 입력하세요! : ");
	scanf("%d", &score);

	if (score >= 90) {
		printf("당신은 합격입니다! \n");
	}

	if (score < 90) {
		printf("당신은 불합격 입니다! \n");
	}

	return 0;
}

switch문

else if가 너무 반복되고 있고, 이렇게 반복되면 코드의 효율성이 떨어져서 등장한 것이 바로 switch입니다.
switch는 if문과 거의 똑같지만 다른점은 조건문에 "상수"밖에 올 수 없다는 점입니다

a > 10과 같은 범위가 포함된 조건은 올 수 없다.

switch(조사할 대상) {
  case 조사할 대상 == 1:
    실행문
  case 조사할 대상 == 2:
    실행문
  case 조사할 대상 == 3:
    실행문

}

break

  • break는 현재 진행되고 있는 상태를 탈출하는 기능을 합니다.
  • case 1 : 이 실행되면 break로 탈출하게 됩니다.
  • 만약 break가 없다면 다른 모든 case도 실행되므로 break는 필수입니다.

default

  • default는 모든 case에 속하지 않은 경우 실행되는 구문입니다.
  • 따라서 입력한 코드의 case중에 값이 없다면 잘못 입력된 것이기 때문에 예외처리를 해주는 것입니다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
	int a, b, c;
	scanf("%d %d %d", &a, &b, &c);

	if (a > b && a > c) {
		printf("가장 큰 수는 %d입니다.", a);
	}

	else if (b > a && b > c) {
		printf("가장 큰 수는 %d입니다.", b);
	}

	else {
		printf("가장 큰 수는 %d입니다.", c);
	}
	 
	return 0;
}

조건문의 장단점

장점

  • 프로그램의 유연성: 조건문을 사용하면 프로그램이 주어진 조건에 따라 다른 동작을 수행할 수 있습니다. 이를 통해 프로그램이 더욱 유연하고 다양한 상황에 대처할 수 있습니다.

  • 코드의 가독성: 조건문을 사용하면 코드의 가독성이 높아집니다. 코드의 실행 흐름이 명확하게 드러나기 때문입니다.

  • 오류 방지: 조건문을 사용하면 잘못된 값을 처리하는 코드를 작성할 수 있습니다. 이를 통해 프로그램이 더욱 안정적으로 동작할 수 있습니다.

단점

  • 프로그램의 복잡성: 조건문이 많이 사용되면 프로그램의 복잡성이 증가합니다. 이를 해결하기 위해서는 코드를 모듈화하고 함수로 분리하는 등의 작업이 필요합니다.

  • 디버깅의 어려움: 조건문이 많은 경우 디버깅이 어려워집니다. 이를 해결하기 위해서는 코드를 모듈화하고 함수로 분리하는 등의 작업이 필요합니다.

  • 성능 저하: 조건문은 프로그램의 실행 속도를 느리게 만들 수 있습니다. 이를 해결하기 위해서는 조건문을 최소화하고, 실행 속도를 높일 수 있는 알고리즘을 사용하는 등의 작업이 필요합니다.

반복문

C언어에서의 조건문은 3가지 종류가 있습니다

  • for문
  • while문
  • do-while문

for문

for문은 다음과 같은 구조를 가집니다.

for (초기화; 조건식; 증감식) {
    // 반복해서 실행할 코드
}

위 구조에서 초기화는 반복문을 시작하기 전에 한 번 실행되며, 조건식은 반복문을 실행할 조건을 나타내며, 증감식은 반복문이 한 번 실행된 후에 실행됩니다. 조건식이 참일 동안에만 반복문의 중괄호({}) 안의 코드가 반복해서 실행됩니다.

예를 들어, 아래 코드는 변수 i를 0으로 초기화하고, i가 10보다 작을 동안 i의 값을 1씩 증가시키면서 반복문을 실행합니다.

for (int i = 0; i < 10; i++) {
    printf("%d\n", i);
}

while문
while문은 다음과 같은 구조를 가집니다.

while (조건식) {
    // 반복해서 실행할 코드
}

위 구조에서 조건식이 참일 동안에만 반복문의 중괄호({}) 안의 코드가 반복해서 실행됩니다.

예를 들어, 아래 코드는 변수 i를 0으로 초기화하고, i가 10보다 작을 동안 i의 값을 1씩 증가시키면서 반복문을 실행합니다.

int i = 0;
while (i < 10) {
    printf("%d\n", i);
    i++;
}

do-while문
do-while문은 다음과 같은 구조를 가집니다.

do {
    // 반복해서 실행할 코드
} while (조건식);

위 구조에서 중괄호({}) 안의 코드가 한 번 실행된 후에, 조건식이 참일 동안에만 반복해서 실행됩니다. 즉, do-while문은 일단 한 번은 반복문의 코드를 실행하고, 그 후에 조건식을 평가합니다.

예를 들어, 아래 코드는 변수 i를 0으로 초기화하고, i가 10보다 작을 동안 i의 값을 1씩 증가시키면서 반복문을 실행합니다.

int i = 0;
do {
    printf("%d\n", i);
    i++;
} while (i < 10);

위 코드에서는 i가 0인 상태에서 먼저 printf 함수가 한 번 실행되고, 그 후에 i의 값이 1씩 증가하면서 조건식이 참일 동안에만 반복해서 printf 함수가 실행됩니다.

반복문의 장단점

장점

  • 코드의 길이를 줄일 수 있다
    반복문은 일정한 패턴을 가진 작업을 반복하여 수행하기 때문에, 반복되는 작업을 코드 한 줄로 처리할 수 있어서 코드의 길이를 줄일 수 있습니다.

  • 코드의 가독성을 높일 수 있다
    반복문을 사용하면 코드의 구조가 명확해지고 가독성이 높아집니다. 즉, 코드를 이해하기 쉬워집니다.

  • 유지보수를 용이하게 한다
    반복문을 사용하면 작업의 범위를 빠르게 변경할 수 있어서, 유지보수가 용이합니다.

단점

  • 반복 횟수가 많아질 경우 처리 속도가 느려질 수 있다
    반복 횟수가 적을 경우에는 차이가 크지 않지만, 많아질 경우 처리 속도가 느려질 수 있습니다.

  • 무한 루프에 빠질 가능성이 있다
    반복문을 작성할 때, 종료 조건을 정확하게 작성하지 않으면 무한 루프에 빠질 가능성이 있습니다. 무한 루프에 빠지면 프로그램이 비정상적으로 동작하거나 멈출 수 있습니다.

조건문과 반복문은 프로그래밍에서 가장 기본적인 구문 중 하나입니다. 이를 통해 프로그래머는 프로그램의 실행 흐름을 제어하고, 반복적인 작업을 효율적으로 처리할 수 있게 됩니다. 하지만 조건문과 반복문을 적절하게 사용하지 않으면 코드의 가독성이 떨어지거나, 오류가 발생할 가능성이 높아집니다. 따라서 조건문과 반복문을 사용할 때는 코드의 구조와 흐름을 명확하게 이해하고, 적절하게 사용해야 합니다.

profile
^^

0개의 댓글