Search

조건문, 반복문

조건문

프로그래밍은 기본적으로 정해진 순서대로 실행되지만,
특정 '조건' 에 따라서 다양한 선택이 발생하도록 하는 것을
조건문 이라고 함

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
복사