728x90
목차
1. 분기문
2. 반복문
1. 분기문
1-1. if
#include <stdio.h>
int main(){
int score = 70;
if(score >= 80){ // 80점 이상이면
puts("합격"); // 합격멘트 출력
}
puts("수고하셨습니다"); // if문 범위가 아니므로 무조건 출력
return 0;
}
* 조건식에 따라 선택적으로 명령을 실행할수 있다
* 조건식이 '참'인 경우, 아래의 명령실행
* 블록구조로 묶인 명령문들을 실행
* 모든 제어문은 블록구조가 없으면 최초 하나의 명령문만 실행
1-2. if-else
#include <stdio.h>
int main(){
int score = 70;
if(score >= 80){ // 80점 이상이면
puts("합격"); // 합격 출력
}else{
puts("불합격"); // 불합격 출력
puts("재도전"); // 블록구조이므로 재도전까지 출력
}
puts("수고하셨습니다"); // if문 범위가 아니므로 무조건 출력
return 0;
}
* 조건식이 '참'인 경우와 '거짓'일때 각각 실행해야 하는 명령이 다른 경우 사용한다
* else문은 조건식이 '거짓'인 경우에 아래 명령을 실행한다
* else문만 단독으로 사용할수없다
1-3. 다중 if-else
#include <stdio.h>
int main(){
int score = 70;
if(score >= 80){ // 80점 이상이면
puts("합격"); // 합격 출력
}else if(score >= 70){ //70점 이상이면
puts("재시험"); // 재시험 출력
}
else{
puts("불합격"); // 불합격 출력
}
puts("수고하셨습니다"); // if문 범위가 아니므로 무조건 출력
return 0;
}
* 실행되어야 할 명령의 분기가 셋 이상일때 사용한다
* 분기마다 새로운 조건식을 세워야 한다
* 마지막 else문은 조건을 입력하지 않는다
1-4. 삼항 연산자
#include <stdio.h>
int main(){
int a = 10, b = 5, c;
c = (a > b) ? 20 : 40; // a가 b보다 크면 20 아니면 40 c에 입력
return 0;
}
* 3개의 항으로 두 결과중 하나의 값을 결과로 나타낸다
* 단순 할당이 필요한 if-else문 대신 사용이 가능하다
1-5. switch-case
* 특정 데이터를 단일 값으로 비교하여 명령을 실행한다
* 비교 데이터는 숫자 또는 문자만 가능하다
* 일치하는 영역뿐 아니라 아래의 모든 코드도 실행된다
1-6. break
* break문 아래의 코드를 진행하지 않고 즉시 블록구조를 벗어난다
* 자신이 속해있는 블록 구조에만 해당
1-7. switch-case-default
#include <stdio.h>
int main(){
int month = 4;
switch(month){
case 2: // month 값이 2인 경우
puts("총 28일 입니다");
break;
// month값이 4, 6, 9, 11 인 경우
case 4:
case 6:
case 9:
case 11:
puts("총 30일 입니다");
break; // switch 종료
// month값이 1, 3, 5, 7, 8, 10, 12 인 경우
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
puts("총 31일 입니다");
break;
// month값이 1~12가 아닌경우
default:
puts("다시 월을 입력해주세요);
break;
}
return 0;
}
* 일치하는 값이 없을 경우엔 default 아래의 코드를 실행
* default 단독으로 사용할수 없다
2. 반복문
2-1. for
#include <stdio.h>
int main(){
// 반복용 변수, 합계용 변수
int i, sum = 0;
// i가 1부터 10이하일때 까지 1씩 증가하면서 반복
for(i = 1; i <= 10; i++){
sum += i;
}
// for문 종료후 sum(합계) 출력
printf("%d",sum);
return 0;
}
* 지정한 횟수만큼 코드를 반복한다
* 시작값, 종료분기, 증감식을 지정해서 사용한다
* break문으로 벗어날수 있다
2-2. while
#include <stdio.h>
int main(){
// 반복용 변수, 합계용 변수
int input = 0, sum = 0;
// input 값이 0 이상인 동안 반복
while(input >= 0){
// 10진수를 입력받아 input에 할당
scanf("%d", &input);
// 할당된 input값을 sum에 누적
sum = sum + input;
}
// while문 종료후 sum(합계) 출력
printf("%d",sum);
return 0;
}
* 지정한 조건을 만족할때 까지 코드를 반복한다
* 조건을 먼저 판단한 다음 코드를 반복한다
* 조건에 따라 단 한번도 실행이 안될수 있다
* break문으로 벗어날수 있다
2-3. do-while
#include <stdio.h>
int main(){
// 반복용 변수, 합계용 변수
int input = 0, sum = 0;
do
{
// 10진수를 입력받아 input에 할당
scanf("%d", &input);
// 할당된 input값을 sum에 누적
sum = sum + input;
}while(input >= 0);
// do-while문 종료후 sum(합계) 출력
printf("%d",sum);
return 0;
}
* 지정한 조건을 만족할때 까지 코드를 반복한다
* 코드를 먼저 실행한 다음 조건을 판단한다
* 조건이 맞지 않아도 최소 한번은 실행한다
* break문으로 벗어날수 있다
2-4. continue
#include <stdio.h>
int main(){
// 반복용 변수, 합계용 변수
int input = 0, sum = 0;
// input 값이 0 이상인 동안 반복
while(input >= 0){
// 10진수를 입력받아 input에 할당
scanf("%d", &input);
// 입력값이 짝수면 현재 단계 건너뛰기
if(input % 2 == 0)
continue;
// 할당된 input값을 sum에 누적
sum = sum + input;
}
// do-while문 종료후 sum(합계) 출력
printf("%d",sum);
return 0;
}
* continue 아래의 코드를 무시하고 다음 단계 반복으로 넘어간다
* break와 함께 모든 반복문에 사용가능하다
참고자료 : 이기적 환상콤비 정보처리기사
728x90
'자격증 > 정보처리기사' 카테고리의 다른 글
객체지향 기술 (0) | 2022.07.07 |
---|---|
C언어 자료구조와 포인터 (0) | 2022.07.07 |
C언어 특징 및 입출력 (0) | 2022.07.06 |
분산 데이터베이스 설계 (0) | 2022.07.05 |
병행제어(Concurrency Control)와 로킹(Locking) (0) | 2022.07.05 |