
7. 조건문
- IF 문 : 조건 참/거짓 여부 따라 실행 경로 다름
- Switch문 : 여러 경로 중 하나 선택
(1) IF 문
- 조건 참/ 거짓 여부로 경로 선택하는 명령문

if(조건문) {
명령문;
}
else if {
명령문;
}
else {
명령문;
}
if 문 안 코드 한 줄일 경우,
중괄호 생략 가능
- if 조건문 참 > if 안 명령문 실행
- if 조건문 거짓 > else if 문 조건 판단
- else if 문 참 > else if 문 명령문 실행
- else if 문 여러 개 사용 가능
- else if 문 모두 거짓 > else 명령문 실행
#include <stdio.h>
int main(){
int x=5;
if(x%3==0)
printf('1');
else if(x%3==1)
printf('2');
else
printf('3');
return 0;
}
# 3
- x 5 선언
- 5%3 = 2 이므로 if문, else if 문 거짓
- else 안 명령문 실행 > 3 출력
(2) switch 문
- 조건 따라 여러 개 선택 경로 중 하나 선택하는 명령문

- Switch 문 내 Break
break 문 없을 경우,
첫 번째 case부터 switch 문 끝까지 동작
switch(식){
case 값 :
명령문;
break;
default:
명령문;
}
- switch 문의 식 계산 > 일치하는 값을 가진 case 문 실행
- 모든 case 값 만족하지 않으면 default 명령문 실행
- ** break 없을 경우, break 만날 때 까지 switch 문의 모든 문장 실행
#include <stdio.h>
int main(){
int score=101;
switch(score/10){
case 10:
case 9:
printf('A'); break;
case 8:
printf('B'); break;
default:
printf('F');
}
return 0;
}
# A
- 정수형 변수 score 101 선언
- 101/10 = 10.1 이나 정수와 정수의 계산이므로 소수점 버리기 = 10
- case 10으로 이동 > 명령문 없음 & break문 없음 > 다음 문장 실행
- case 9 이동 > A 출력 후, break로 switch문 종료
8. 반복문
- 특정 부분 조건 만족할 때 까지 반복 실행
- 탈출 조건 없을 경우, 무한 루프
(1) while 문
- 조건 참일 동안, 해당 분기 반복 실행

while(조건문){
명령문;
}
#include <stdio.h>
int main(){
int i=0, sum=0;
while (i<2){
i++;
sum=sum+i;
}
printf('%d\n',sum);
return 0;
}
# 3
- 정수형 변수 i, sum 0 선언
- i 값이 2보다 작을 때까지 while 안 명령문 반복
- i++로 1 증가 i=1, sum=0+1=1, 명령문 재반복
- i++로 1 증가 i=2, sum=1+2=3, 조건 거짓으로 반복 종료
- sum=3 출력
(2) do while 문
- while 값이 반복 주기 끝에 붙어있음
- 조건의 참/거짓과 상관 없이 무조건 한 번은 실행
- 다음부터 조건 참인 동안 분기 반복 실행 명령문

do{
명령문;
}while(조건문);
#include <stdio.h>
int main(){
int i=1, sum=0;
do{
sum=sum+i;
i++;
}while(i<0);
printf('%d\n',sum);
return 0;
}
# 1
- 정수형 변수 i 1, sum 0 선언
- do while 문이므로 일단 한 번 실행 > sum=0+1=1, i는 1증가 i=2
- while 문 조건이 i가 0보다 작아야 하므로 조건 성립 x > 반복문 탈출
- sum 1 출력
(3) for 문
- 초기식, 조건식, 증감식 지정하여 반복
for (초기식; 조건식; 증감식){
명령문;
}
명령문;
- 초기식 : 조건에 사용할 변수 초기화
- 조건식 : 참일 경우, for문 안 명령문 반복 / 거짓이면 명령문 탈출
- 증감식 : for문 안 명령문 한 번 완료하면 변수값 변경
- 초기식에 따라 변수 초기값 설정
- 조건 참/거짓 여부 확인
- 참이면 for문 안 명령문 실행
- 명령문 종료 후, 증감식에 따라 변수 값 변경
- 조건 참/거짓 여부 확인
- 거짓일 때까지 반복, 거짓이면 for 문 종료
- for문 밖 명령문 실행
for(..); 와 같이 for문 바로 뒤 세미콜론(;)은 반복 명령어가 없는 것
#include <stdio.h>
int main(){
int i, sum =0;
for(i=1; i<3; i++)
sum=sum+i;
printf('%d\n',sum);
return 0;
}
# 3
- 정수형 변수 i, sum 0 선언
- for문 초기식에 따라 i=1로 초기화, 조건식이 i<3이므로 반복문 실행
- sum=0+1=1, 반복문 완료 후 올라가서 증감식에 따라 i 1증가 (i=2)
- 아직 조건식 만족하므로 반복문 실행 > sum=1+2=3
- 반복문 완료 후, 다시 증감식에 따라 i 1증가 (i=3)
- 조건 불만족으로 반복문 탈출
- sum 3 출력
for문 안 코드 한 줄일 경우 (=반복문 명령어가 한 줄일 경우)
중괄호 생략 가능
=> 이중 for문도 동일
# c언어 이중 for문
#include <stdio.h>
int main(){
int i,j;
for(i=1; i<3; i++)
for(j=1; j<3; j++)
printf('%d\n', i*10+j);
return 0;
}
# 11
# 12
# 21
# 22
- 정수형 변수 i,j 선언
- 첫 번째 for문 초기식에 따라 i=1 초기화
- 조건식 1<3 만족하므로 반복문 실행
- 두 번째 for문 초기식에 따라 j=1 초기화
- 조건식 1<3 만족하므로 반복문 실행 > 1*10+1 = 11 출력
- 두 번째 for문 증감식에 따라 j 1 증가 (j=2) > 조건식 2<3 만족 반복문 실행
- 1*10+2=12 출력 > 증감식에 따라 j 1 증가 (j=3) > 조건 불만족 탈출
- 첫 번째 for문 증감식에 따라 i 1 증가 (i=2) > 조건식 2<3 만족 반복문 실행
- 두 번째 for문 초기식 j=1 초기화 > 조건 만족으로 반복문 실행 > 2*10+1=21 출력
- 두 번째 for문 증감식 j 1 증가 (j=2) > 조건 만족으로 반복문 실행 > 2*10+2=22 출력
- 두 번째 for문 증감식 j 1 증가 (j=3) > 조건 불만족 탈출
- 첫 번째 for문 증감식 i 1 증가 (i=3) > 조건 불만족 탈출
(4) 루프 제어 명령어
[1] break 문
- 반복문이나 switch문의 중간에서 탈출할 때 사용
#include <stdio.h>
int main(){
int i=1;
while (i<5){
i++;
if(i==3)
break;
printf('%d',i);
}
printf('%d',i);
return 0;
}
# 23
- 정수형 변수 i 1 선언
- while 반복문에 따라 i<5 만족할 때까지 반복, 1<5이므로 반복문 실행
- i++에 따라 1증가 (i=2)
- i가 3이 아니므로 if문 불만족 > 2 출력
- 2<5이므로 반복문 실행 > i++로 1증가 (i=3)
- i가 3이므로 if문 만족 > break 로 while문 탈출
- 3 출력
[2] continue 문
- 반복문에서 다음 반복으로 넘어갈 때 사용
- 아래 명령문 실행하지 않고 반복문 시작 부분으로 이동
#include <stdio.h>
int main(){
int i=1;
while(i<5){
i++:
if(i==3)
continue;
printf('%d',i);
}
printf('%d',i);
return 0;
}
# 2455
- 정수형 변수 i 1 선언
- while문 조건 1<5 만족하므로 반복문 실행
- i++에 따라 1 증가 (i=2) > 2!=3이므로 if문 불만족 > 2 출력
- 2<5 조건문 만족으로 반복문 실행 > i 1 증가 (i=3) > i가 3이므로 if문 만족
- if문 안 continue 실행 > while 반복문 시작 부분으로 이동 (**밑에 명령문 건너뜀**)
- 3<5 조건문 만족으로 반복문 실행 > i 1 증가 (i=4) > if문 불만족 > 4 출력
- 4<5 조건문 만족으로 반복문 실행 > i 1 증가 (i=5) > if문 불만족 > 5 출력
- 5<5 while 조건 불만족으로 반복문 탈출
- 5 (i) 출력
'WorkOut > 정보처리기사' 카테고리의 다른 글
C언어 | 구조체와 함수 (0) | 2024.03.19 |
---|---|
C언어 | 배열과 문자열 (0) | 2024.03.18 |
C언어 | 연산자 종류와 우선 순위 (0) | 2024.03.18 |
C언어 | 전처리기, 자료형, 식별자, 변수, 표준 입출력함수 (3) | 2024.03.16 |
프로그래밍을 위한 기본 사항 | 진수 (0) | 2024.03.16 |