조건문 : 다중 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문을 써서 탈출하도록 해야 함