일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Digital Slow Shutter
- 아이리스
- Gain
- Zoom Lense
- 저조도
- 저장소와 동적메모리
- 과초점거리
- camera
- 실생활알고리즘
- AppInventer
- 변수
- 간단한 앱만들어보기
- 프로그래머스 lv2
- Pixel Bit Format
- 심도
- CS Mount
- Depth of Fileld
- 렌즈
- Patch Cleaner
- 조건 제어문
- 무게선별자동화
- 고정비트레이트
- C Mount
- ASCCII
- image sensor
- 변수의 초기화와 대입
- main 함수 인자 전달
- c언어
- 이미지센서
- 카메라
- Today
- Total
카메라 개발자 공부방(SW)
[4장] 조건 제어문 본문
3장에서 잠깐 맛을 봤죠?
조건 제어문은 조건에 따라 참이면 if 다음 { } 내용을 실행하고,
그렇지 않다면 { }를 실행하지 않습니다.
여기서 조건은 참이면 true, 거짓이면 false입니다.
정수 1도 참이고, 0도 거짓입니다.
정말 중요한 사실! 0이 아닌 모든 값들은 참입니다.
if 문은 주로 아래 3가지 형태로 사용될 수 있습니다.
// 1)
if (조건) {
}
// 2)
if (조건) {
}
else {
}
// if 조건이 참이 아닌 경우에 else 문을 실행합니다.
// 3)
if (조건) {
}
else if (조건) {
}
else {
}
// if, else if, else가 한 세트로 되어있는 경우 세트 중에 하나만 실행됩니다.
3)의 경우엔 위에서 가장 먼저 만난 조건 문이 참인 if 문 하나만 실행합니다.
다음은 switch 문입니다.
switch의 인자 값(입력)을 분기로 정해서 원하는 코드만 실행시킬 수 있습니다.
int n = 1;
switch(n) {
case 0:
break;
case 1:
break;
case 2:
break;
default:
break;
}
입력이 1이면 case 1 분기를, 입력이 2이면 case 2 분기를 실행합니다.
0, 1, 2 이외의 값이 입력이면 default 분기문을 실행합니다.
break는 switch 문을 탈출하는 제어자입니다.
#include <stdio.h>
int main()
{
if (true) {
printf("true");
}
return 0;
}
// 실행결과
// true
조건 제어문이 참이기 때문에 true가 출력됩니다.
#include <stdio.h>
int main()
{
if (1) {
printf("true");
}
return 0;
}
// 실행결과
// true
조건 제어문이 참이기 때문에 1이니까 true 출력됩니다.
#include <stdio.h>
int main()
{
if (-1) {
printf("true");
}
return 0;
}
// 실행결과
// true
0 이외의 모든 값은 참이기 때문에 -1 도 참이므로 true가 출력됩니다.
#include <stdio.h>
int main()
{
if (true) {
printf("if \n");
}
else if(false) {
printf("else if\n")
}
else {
printf("else\n");
}
return 0;
}
// 실행결과
// if
가장 먼저 만난 조건이 참인 if 문은 if이기 때문에 if가 출력됩니다.
#include <stdio.h>
int main()
{
if (false) {
printf("if\n");
}
else if(true) {
printf("else if\n")
}
else {
printf("else\n");
}
return 0;
}
// 실행결과
// else if
가장 먼저 만난 조건이 참인 if 문은 else if이기 때문에 else if가 출력됩니다.
#include <stdio.h>
int main()
{
if (true) {
printf("if\n");
}
else if(true) {
printf("else if\n");
}
else {
printf("else\n");
}
return 0;
}
// 실행결과
// if
else if 가 true라도 가장 먼저 만난 조건이 참인 if 문은 if이기 때문에 if가 출력됩니다.
#include <stdio.h>
int main()
{
switch (1) {
case 0:
printf("case 0\n");
break;
case 1:
printf("case 1\n");
break;
case 2:
printf("case 2\n");
break;
default:
printf("default\n");
break;
}
return 0;
}
// 실행결과
// case 1
입력이 1이기 때문에 분기가 1인 코드가 실행됩니다.
#include <stdio.h>
int main()
{
char input = 'a';
switch (input) {
case 'a':
printf("case a\n");
break;
case 'b':
printf("case b\n");
break;
case 'c':
printf("case c\n");
break;
default:
printf("default\n");
break;
}
return 0;
}
// 실행결과
// case a
다음은 문자를 입력받아볼까요?
입력이 a이기 때문에 분기가 a인 코드가 실행됩니다.
#include <stdio.h>
int main()
{
char input = 'a';
switch (input) {
case 'a':
case 'b':
printf("case ab\n");
break;
case 'c':
printf("case c\n");
break;
default:
printf("default\n");
break;
}
return 0;
}
// 실행결과
// case ab
case a에 분기문 break가 없기 때문에, case b까지 실행이 됩니다.
#include <stdio.h>
int main()
{
char input = 'a';
switch (input) {
case 'a':
case 'b':
case 'c':
printf("case abc\n");
break;
default:
printf("default\n");
break;
}
return 0;
}
// 실행결과
// case abc
case a에 분기문 break가 없기 때문에, case b / case c까지 실행이 됩니다.
원리에 대해선 꼭 기억해주세요~!
'Langauge > C' 카테고리의 다른 글
[6장] 자료형(data type) (0) | 2021.09.25 |
---|---|
[5장] 반복문 (0) | 2021.09.24 |
[3장] 연산자 (0) | 2021.09.22 |
[2장] 변수 (0) | 2021.09.21 |
[1장] C언어 start (0) | 2021.09.20 |