728x90
반응형
프로그램 언어의 제어 구조
-
순차적 제어
-> 특별한 지정이 없는 경우 위아서 아래로 수행됨 -
선택적 제어
-> 주어진 조건에 따라 특정부분으로 수행을 옮기는 분기 제어구조 -
반복적 제어
-> 특정한 부분을 일정 횟수만큼 반복 수행하는 제어구조
4-1. 선택 제어문
- if 문
- switch ~ cas e문
- go to 문
1.단순 if문 (단순 제어)
- 형식 : if (조건) { 참일 경우 명령문 } 거짓일 경우 명령문
-> 가독성이 떨어진다-> 가독성이 떨어진다
2.if ~ else 문
- 형식 : if (조건) 참일 경우 명령문 else 거짓일 경우 명령문
#include <stdio.h>
int main(void) {
int a, b, max;
a = 10;
b = 20;
if(a >= b)
max = a; // 수행될 명령문이 2줄 이상일 경우 중괄호로 묶어준다
else
max = b;
printf("max=%d", max);
}
3.다중 if ~ else 문
-
형식 :
if (조건 1)
조건 1 참 명령문;if (조건 2)
조건 2 참 명령문;
else
조건 2 거짓 명령문;
else
조건 1 거짓 명령문;
#include <stdio.h>
int main(void) {
int a;
a = 10;
if(a >= 0)
if(a==0)
printf("입력 값은 0 입니다.");
else
printf("입력 값은 양수입니다.");
else
printf("입력 값은 음수 입니다.");
}
4. if ~ else if ~ else 문
- 형식 :
if(조건 1)
else if (조건 2)명령문1;
else if (조건 3)명령문2;
else명령문3;
명령문4;
#include <stdio.h>
int main(void) {
int score = 10;
if(score>=8)
printf("학점 A");
else if(score>=6)
printf("학점 B");
else
printf("학점 C");
}
switch ~ case 문 (다양한 경우의 제어 가능)
- 형식 :
switch(수식){
case 값1: 명령문 1;
break;
case 값2: 명령문 2;
break;
default: 명령문(else와 비슷한)
-> 주어진 값에 따라 여러 곳 중 한 곳으로 분기하여 실행
-> 하나의 case마다 break를 사용하여 멈춰주어야 원하는 결과를 얻을 수 있다 (없으면 case 전체 실행됨)
goto 문 (무조건 분기)
- 형식 :
Label:
goto Label;
-> 프로그램 수행 도중 원하는 곳으로 제어를 무조건 옮김
#include <stdio.h>
int main(void) {
int score = 5;
if(score>=8)
printf("학점 A");
else if(score>=6)
printf("학점 B");
else
goto Hell;
printf("학점 C");
Hell:
printf("welcome to Hell");
}
- if ~ elif ~ else 내에 goto 적용 시 else에만 가능
- 루프안(if, for 등)으로 들어갈 수 없다 -> 안에서 밖으로는 가능
4-2. 반복 제어문
반복 제어문의 종류
for
- while
- do ~ while
for 문
- 형식 :
for(초기식; 조건식; 증감식) {
실행문;
} -
주어진 조건에 만족하는 만큼 반복 실행된다
-
조건에 들어갈 식은 정수형이어야 한다
다중 for 문
- 형식 :
for() {
for(){
내부 실행문;
}
외부 실행문;
}
while 문
- 형식 :
while(조건식){
실행문;
} -
for문과 같은 반복문이지만 조건식에 의해 실행됨
do while 문
- 형식 :
do {
실행문;
}while(조건식);
-> do 내부의 실행문을 먼저 1회 실행 후 참이면 조건 만큼 실행, 아니면 종료
기타 제어문
- break -> 반복 명령 실행 중 전체 반복문 강제 종료 (switch~case 문에서도 사용)
- continue -> 자신이 포함된 반복문만 빠져나오고 계속 실행 (반복 구조에서만 사용)
반응형
'프로그래밍 언어 > C' 카테고리의 다른 글
C언어 - 7. 함수와 기억클래스(2) (0) | 2021.03.14 |
---|---|
C언어 - 6. 함수와 기억클래스(1) (0) | 2021.03.14 |
C언어 - 4.입출력 함수와 연산자(2) (0) | 2021.03.10 |
C언어 - 3. 입출력 함수와 연산자(1) (0) | 2021.03.09 |
C언어 - 2. 자료형과 선행처리기 (0) | 2021.03.09 |
댓글