본문 바로가기

C

10주차 수업내용

조건문 : 다중 if~else

최댓값, 최솟값 구하기

#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
#include <stdio.h>
int main(void)
{
	int num1, num2, num3, max, min;
	printf("세개의 다른 수를 입력하고 Enter를 누르세요:");
	scanf("%d %d %d", &num1, &num2, &num3);
	if (num1 > num2) { max = num1; min = num2; }
	else { max = num2; min = num1; }
	if (num3 > max) max = num3;
	if (num3 < min) min = num3;
	printf("최댓값=%d, 최솟값=%d\n", max, min);
	return 0;
}

 

 

 

조건문 : switch∼case문

다중 if~else문처럼 경우(case)의 수가 많을 경우 자주 사용하는 조건문

결과가 정수형(int, char, enum)인 경우만 선택할 수 있으므로 범위 검사 문제에는 적당하지 않음

switch(조건식){ 	  //조건식은 결과가 정수형(int, char, enum)인 수식만 가능
	case 상수1 : 	   //조건식의 결과가 상수1이면, if(조건식==상수1)
		문장1;
		break; 		 //switch~case문 루프를 벗어남
	case 상수2 : 	   //조건식의 결과가 상수2이면, else if(조건식==상수2)
		문장2;
		break;


	case 상수n:
		문장n;
		break;
	default : 		//만족하는 경우가 없을 때, 다중 if~else의 마지막 else에 해당
		문장;
		break; 		//없어도 되지만 통일감을 위해 쓰는 것이 좋음
}					//switch~case문 루프 끝

 

  • switch다음의 조건식은 결과가 정수형(int, char, enum)인 수식만 가능
  • case 다음에 쓰는 상수1, 상수2 등을 레이블(label)이라 함
  • case문의 레이블 다음에는 구두점 콜론(:)을 씀
  • break문은 자신을 포함하고 있는 블록(루프)을 벗어나는데 사용
  • 조건식은 각 case문에서 차례대로 비교되고 조건식의 결과와 상수 레이블이 일치하면 그 아래 문장을 실행하고 break문을 만나면 switch~case문을 탈출
  • 보통은 각 case별로 실행할 내용이 다르므로 case문마다 마지막에 break문을 모두 사용하지만, break문을 반드시 써야 하는 것은 아님
  • 마지막 case에 해당하는 default문은 위의 case 레이블에 만족하는 경우가 없을 때 실행되는 부분으로 다중 if~else의 마지막 else에 해당함

switch~case문에서 break를 포함하는 언어도 존재

 

 

switch∼case문에 break생략

#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
#include <stdio.h>
int main(void)
{
	int value;
	printf("1~3까지의 수를 입력하세요:");
	scanf("%d", &value);

	switch (value) {
		case 1:
			printf("1을 입력하셨습니다.\n");
		case 2:
			printf("2를 입력하셨습니다.\n");
		case 3:
			printf("3을 입력하셨습니다.\n");
		default:
			printf("다시 입력하세요.\n");
	}
	return 0;
}

 

switch~case문 계산기

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>
int main(void)
{
	char op;         // 연산자 저장 변수
	int num1, num2; // 피연산자 저장 변수
	printf("덧셈과 뺄셈, 곱셈, 나눗셈만 가능합니다\n");
	printf("계산하려는 수식(예:10+20)을 입력하세요:");
	scanf("%d%c%d", &num1, &op, &num2); //10+20

	switch (op) {
	case '+':
		printf("덧셈 결과는 %d입니다.\n", num1 + num2);
		break;
	case '-':
		printf("뺄셈 결과는 %d입니다.\n", num1 - num2);
		break;
	case '*':
		printf("곱셈 결과는 %d입니다.\n", num1 * num2);
		break;
	case '/':
		printf("나눗셈 결과는 %.1lf입니다.\n", (double)num1 / num2);
		break;
	case '%':
		printf("나머지 결과는 %d입니다.\n", num1 % num2);
		break;
	default:
		printf("다시 입력하세요\n");
		break;
	}
	return 0;
}

 

반복문 : for

특정한 부분을 반복

반복 횟수를 알고 있는 경우 많이 사용

for문은 제어 변수 초기식, 조건식, 증감식(증가나 감소식을 줄여서)의 세 부분으로 구성

각각은 구두점 세미콜론(;)으로 분리

for(제어 변수 초기식; 조건식; 증감식)
{
	반복 실행될 문장;
}

 

for문 사용 방법

 

for(i=0;i<10;i++) //++i, i=i+1, i+=1 가능

  • i는 0부터 9까지 1씩 증가하므로 10번 반복

for(j=10;j>0;j--)

  • j는 10부터 1까지 1씩 감소하므로 10번 반복

for(i=1,j=1;i<=99;i+=2,j++)

  • i=1, j=1의 초기값을 가지고 i가 99일 때까지 i는 2씩 증가(i=i+2) 시키고, j는 1씩 증가시킴

for( ; ; ) //무한루프, break문을 써서 탈출해야 함

  • 초기식, 조건식, 증감식이 모두 생략되어 있는데 이렇게 하면 반복 횟수를 무한하게, 즉 무한 루프를 만들 수 있음
  • 무한 루프는 반복문 안에 break문을 써서 탈출하도록 해야 함

 

 

 

 

'C' 카테고리의 다른 글

12주차 수업내용  (0) 2024.05.21
11주차 수업내용  (0) 2024.05.14
9주차 수업내용  (0) 2024.04.30
7주차 수업내용  (0) 2024.04.16
6주차 수업내용  (0) 2024.04.09