4.1 조건에 따라 분기
✅ if-else문
- 프로그램을 샐행하는 중에 조건에 따른 분기가 필요할 때 사용.
- if 문 안에 정의된 조건을 만족하면(참) if 문의 중괄호 영역을, 만족하지 않으면(거짓) else문의 중괄호 영역을 실행.
if (조건) {
//조건을 만족할 때 수행할 문장
} else {
//조건을 만족할 때 수행할 문장
}
- 조건문은 프로그램을 실행하는 중에 조건에 따른 분기가 필요할 때 사용.
- if문은 else 없이 단독으로 사용 가능.
✅ if-else if-else문
- 프로그램을 실행하는 중 분기 조건이 다양할때 사용.
- if문의 조건이 참이면 if문의 중괄호 역활을 실행.
- 거짓이면 else if 문의 조건을 다시 확인, else if 문 조건 중 하나라도 참이라면 해당 조건의 중괄호 영역을 실행하고나서 조건문 전체를 빠져나옴.
- 모든 조건이 거짓이면 else문을 실행.
if (조건) {
//조건을 만족할 때 수행할 문장
} else if (조건){
//조건을 만족할 때 수행할 문장
} else if (조건){
//조건을 만족할 때 수행할 문장
} else {
// 조건을 만족할 때 수행할 문장
}
- if문과 else 문 사이에는 else if문을 여러개 사용할 수 있음.
✅ AND 연산자와 OR 연산자
- AND 연산자(&&)는 2개 이상의 조건을 모두 만족하는지 확인할 때 사용.
- 두 조건이 모두 참이면 참
- OR 연산자 (||)는 2개 이상의 조건 중 하나라도 만족하는지 확인할 때 사용.
- 두 조건 중 하나라도 참이면 참.
4.2 실행 중단
✅ break문
- 반복문이나 switch문을 탈출할 때 사용.
- break 문을 만나면 이후 문장들은 실행하지 않고 반복문 또는 switch문 전체를 빠져나옴.
int main(void) {
for(int i = 1; i <=30; i++) {
if(i >=6) {
printf("나머지 학생은 집에 가세요.\n");
break;
}
printf("%d번 학생은 조별 발표를 준비하세요.\n", i);
}
return 0;
}
- 예시 코드를 보면 if문에 해당하는 조건문이 실행되고 만약 6보다 크거나 같은 조건을 만족하면 '나머지 학생은 집에 가세요.'를 출력하며 뒤에 오는 break문을 만나서 더 이상 반복문 실행을 안 하고 for문으로 바로 탈출해 프로그램을 종료.
✅ continue문
- 반복문에서 해당 반복을 건너뛰고 다음 반복으로 넘어갈 때 사용.
- continue 문을 만나면 이후 문장들을 실행하지 않고 다음 반복으로 넘어감.
int main(void) {
for(int i = 1; i <=30; i++) {
if(i >=6 && i <= 10) {
printf("%d번 학생은 결석 입니다.\n");
continue;
}
printf("%d번 학생은 조별 발표를 준비하세요.\n", i);
}
return 0;
}
- 예시 코드 처럼 continue를 쓸 경우 i가 '7번 학생은 결석입니다'를 출력하고 continue문을 만나면 바깥쪽 if 문에 속하는 printf() 문을 수행하지 않고 i++를 수행하여 반복으로 넘어감.
- 즉 continue 없이 조건문을 실행하면 '7번 학생은 결석 입니다.'와 '7번 학생은 조별 발표를 준비하세요.'가 실행문이 겹처서 나옴.
4.3 여러 방향으로 분기
✅ 난수 생성
#include<time.h>
#include<stdlib.h>
#include<stdio.h>
- time.h : 시간 관련 함수를 모아 놓은 헤더파일.
- stdlib.h : 난수 생성과 문자열 변환 등을 수행하는 함수들을 모아 놓은 헤더파일.
- 프로그램에서 난수 rand()를 만들 때 다음과 같은 형식을 사용.
rand () % 어떤 수;
- 여기서 어떤 수는 내가 뽑고 싶은 숫자의 범위를 지정하는 역할.
- 난수를 뽑을 때 항상 초기화는 필수. 초기화를 하지 않으면 난수가 제대로 나오지 않음.
- 초기화 코드는 난수를 뽑는 코드 위쪽에 다음과 같이 작성.
srand(time(NULL)); // 난수 초기화
✅ switch문
- if-else문과 마찬가지로 프로그램을 실행하는 중 조건에 따른 분기가 필요할 때 사용.
switch(조건) {
case 값1 :
// 수행할 문장
break;
case 값2 :
// 수행할 문장
break;
case 값3 :
// 수행할 문장
break;
default :
// 어떤 값도 해당하지 않을 때 수행할 문장
}
- 조건의 값과 일치하는 case 문을 실행하고 break문을 만나면 switch문을 탈출.
- 조건의 값과 일치하는 case 문이 없다면 default문을 실행.