조건문
•
프로그래밍은 기본적으로 정해진 순서대로 실행되지만,
•
특정 '조건' 에 따라서 다양한 선택이 발생하도록 하는 것을
•
조건문 이라고 함
if
if (조건식) {
실행식;
}
// 실행식이 하나 이면 {}생략 가능
C
복사
조건식이 참 (1) 이면 실행식을 실행시키고 거짓(0)이면 실행시키지 않는다.
else / else if
else와 else if로 조건식이 거짓이었을 때의 실행식 만들 수 있음
if (조건식1){
실행식1;
}
else if (조건식2){
실행식2;
}
else {
실행식3;
}
C
복사
1.
조건식 1이 거짓이면 else if문으로 가게되고
2-1. 조건식 2가 참이면 실행식 2 실행 후 if 문 종료,
2-2. 조건식 2가 거짓이면 else문으로 가서 실행식 3 실행
[if , else]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int num;
printf("정수를 입력하시오 -> ");
scanf("%d", &num);
if (num % 2 == 0) // 조건 식
printf("짝수입니다\n");// 조건 참
else
printf("홀수입니다\n");// 조건 거짓
return 0;
}
C
복사
[if, else if, else]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
double gpa;
printf("학점을 입력하시오(최대 4.5) -> ");
scanf("%lf", &gpa);
if (gpa >= 4.0)
printf("최우수 학생입니다\n");
else if (gpa >= 3.0)
printf("우수 학생입니다\n");
else
printf("성적이 3.0 미만인 학생입니다.\n");
return 0;
}
C
복사
Switch 문
•
if 문은 조건식의 연산값의 참 / 거짓을 이용한 조건문이지만
•
switch문은 조건식의 연산값을 문자형이나 정수형으로 판단하는 조건문이다
switch(조건문)
{
case 1:
실행문1;
break;
case 2:
실행문2;
break;
case 3:
실행문3;
break;
default:
실행문4; // 일치하는 case 없을 경우 실행
}
C
복사
[예시]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int action;
printf("동국인의 하루!\n");
printf("무엇을 할까요?\n");
printf("1. 점심 먹기, 2. 수업 듣기, 3. 낮잠자기 \n");
scanf("%d", &action);
switch (action) // action의 값
{
case 1: // action이 1일 경우
printf("행복이 10 상승했습니다 \n");
break;
case 2: // action이 2일 경우
printf("행복이 10 상승했습니다 \n");
break;
case 3: // action이 3일 경우
printf("행복이 10 상승했습니다 \n");
break;
default:// action값이 1, 2, 3이 아닐 경우
printf("잘못된 action값 입니다.\n");
}
return 0;
}
C
복사
[여러 case 나열하기]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int month;
printf("몇 월인가요? ->\n");
scanf("%d", &month);
switch (month) // action의 값
{
case 3: case 4: case 5: // month가 3, 4, 5일 경우를 나열. case 3, 4, 5: 는 안된다.
printf("지금은 봄 입니다. \n");
break;
case 6: case 7: case 8: // month가 6, 7, 8일 경우를 나열
printf("지금은 여름 입니다. \n");
break;
case 9: case 10: case 11: // month가 9, 10, 11일 경우를 나열
printf("지금은 가을 입니다. \n");
break;
case 12:case 1: case 2: // month가 12, 1, 2일 경우를 나열
printf("지금은 겨울 입니다.\n");
break;
}
return 0;
}
C
복사
반복문
While
•
가장 간단한 반복문
while(조건식)
{
실행문;
}
// 다음 문장
C
복사
•
조건식이 참(1)이면 실행문 실행
•
실행 후 다시 조건식 확인 (while)로 돌아감
•
조건식 거짓(0)이면 다음 문장으로 넘어감
•
조건식이 참인 동안 계속 실행문을 반복
do While
•
whille 과의 차이
◦
조건식을 평가하고 반복 실행이 아닌
◦
실행문 한번 실행 후 조건식 평가
do
{
실행문;
}while(조건문)
//다음 문장;
C
복사
[while 예]
#include <stdio.h>
int main()
{
int num = 0;
while (num != 10)
{
num++;
printf("%d ", num);
}
printf("\n");
return 0;
}
C
복사
[do while 예]
센티널 값 검사라고 하며, 반복의 종료를 알리는 특수한 값을 말한다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int input;
do
{
printf("종료하시겠습니까? Y(0), N(0이외의 정수)-> "); // 0을 입력하면 종료하게됨
scanf("%d", &input);
} while (input != 0);
return 0;
}
C
복사
for
•
반복을 위한 제어변수의 초기화 및 증감식을 이용해 반복한다.
•
즉, 반복 횟수 등을 쉽게 설정 가능
for (초기화문; 반복조건식; 증감식)
{
실행문;
}
//다음문장
C
복사
•
초기화문은 제어변수를 초기화하며, 단 한번만 실행된다.
•
반복조건식이 참이면 실행문 실행
•
body(실행문이 있는 몸체) 가 끝나면 증감식을 실행
•
다시 반복 조건식 검사
•
2개의 세미콜론 꼭 필요
•
반복식을 제거하면 무한반복한다
분기문
제어문들은 분기문 통해 jump 가능
break
반복 종료
continue
continue 위치 이후의 몸체 실행 않고 다음 반복 진행
중첩 for문
반복문 내에 반복문 있는 반복문
for 문 안에 for ans
for (int i=0; i<length; i++)
{
for(int j=0; j<length; j++)
{
}
}
C
복사
[for 예시]
#include <stdio.h>
int main()
{
for (int i=1; i < 11; i++) // 1이 초기값, 10까지 증가하며 프린트됨
{
printf("%d ", i);
}
return 0;
}
C
복사
[ 중첩 for 문 ]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int count;
printf("몇 단 트리를 만들까요?->");
scanf("%d", &count);
for (int i = 0; i < count; i++)
{
for (int j = 0; j < count - i; j++)
{
printf(" ");
}
for (int k = -1; k < i * 2; k++)
{
if (i == 0)//i가 0이면 (맨 윗단) 별 출력
{
printf("★");
break;
}
printf("*");// 나머지는 *출력
}
printf("\n");
}
return 0;
}
C
복사