Index
제어 구조(Control)와 조건문 기초
- Flow of Control, Control Construct
- if statement
- Comparison and Logical Operators
- if - else statement and Nested if statements
1. Flow of Control, Control Construct
✓ Flow of Control & Control Construct/Statement
① Flow of Control(제어 흐름)이란?
- 프로그램에서 실행되는 문장들의 실행 순서
- 특별히 지정하지 않으면, 프로그램 실행은 첫 번째 문장에서 시작하여 한 번에 한 문장씩 순차적으로 실행된다.
② Control Construct (제어 구조) / Control Statement (제어문)
- 프로그램에서 실행되는 문장들의 실행 순서를 제어하는/변경할 수 있는 문장
✓ Control Construct
C 언어 제어 구조: 조건문, 반복문, 분기문, 함수 호출 등은 제어 흐름을 변경함
① 조건문 (Conditional Statement)
- if 문, if-else 문, switch 문
② 반복문 (Repetition Statement) 혹은 루프 (Loop)
- while 문, for 문, do-while 문
③ 분기문 (Branching Statement)
- goto 문, return 문, break 문, continue 문
④ 함수 호출 (Funciton Call)
2. if statement
if-statement:
if (expression) statement_true
- if-statement도 하나의 statement
- statement_true는 Block이 될 수도 있음
제어 흐름
- 조건식(expression)이 참(True)이면 statement_true를 실행하고 다음 문장으로 진행
- 조건식(expression)이 거짓(False)이면 statement_true를 실행하지 않고 다음 문장으로 진행
- if 문의 조건식(expression)에는 비교 연산자나 논리 연산자가 일반적으로 쓰인다
✓ if 문의 개념 - 조건을 만족하여야 수행
3. Comparison and Logical Operators
✓ Comparison Operator (비교 연산자)
두 값의 크고 작음이나 같음을 비교한 결과를 진리값으로 나타내는 연산자
- 진리값(Boolean)은 참(True) 또는 거짓(False)의 값을 가진다
- C언어에서는 참을 1로 거짓을 0으로 표현
- 관계 (Relational) 연산자로고도 불린다
✓ Logical Operator (논리 연산자)
진리 값에 대한 연산자
- 산술 또는 비교 연산의 피연산자는 정수 또는 소수와 같은 수이나 논리 연산자의 피연산자는 참 또는 거짓의 진리값
- 논리 연산에서 피연산자의 값이 0 이외의 값을 가질 경우 1이 아니어도 참으로 해석한다
- 논리 연산의 의미 또는 결과는 진리표 (Truth Table)을 통해 표시
✓ 연산자 우선 순위
- 일반 법칙
- 최고 우선순위 ()
- 곱은 합보다 우선한다.
- 산술→관계→논리→대입
- "계산하여 비교한 뒤, 판단하여 저장한다"
4. if - else statement and Nested if statements
✓ if 문과 Block
① if는 한 개의 문장에만 관여한다.
② 그 뒤에 따라오는 문장들에는 관여하지 않는다.
③ Block도 하나의 Statement
- Block 시작, 즉 {의 위치는 선택의 문제; 문법적으로 둘다 가능
- if와 같은 줄에 쓰는 예제가 많음 -> 간결한 소스 코드
- if와 다른 줄에 사용할 경우 블록 구분이 명확해져 가독성이 좋고 오류 가능성이 낮아짐
✓ if-else statement
if-else-statement:
if (expression) statement_true
else statement_false
- 조건에 따라 실행할 문장을 선택
- 조건식(expression)이 참(True)이면 statement_true를 실행하고 거짓(False)이면 statement_false를 실행
✓ if-else문과 Block
if-else문에서 조건 별로 하나 이상의 문장을 수행하고자 할 때
- Block의 적절한 사용이 필요, 독립적인 else문은 없음
- { }으로 둘러 쌓인 하나 이상의 문장을 복합문(Compound Statement)이라고도 함
✓ 중첩 (Nested) if 문
if 문 내에 또 다른 if 문 포함 가능
- 이미 확인한 조건에 기초하여 또 다른 조건을 확인할 수 있다.
- 참고)
- if 문의 statement_true, statement_false에 대해 줄바꿈을 꼭 해야하는 것은 아니다
- 블록으로 구분되는 복합 문장이 아닌 경우, 즉 한 개 문장이고 그 길이가 길지 않은 경우 if, else 등과 같은 줄에 쓰는 것이 코드를 간결하게 할 수 있다.
요약
'Language Study > C' 카테고리의 다른 글
[C/C++] 04 - 함수 기초 - 함수의 개념과 호출 구조, 재귀 호출 (0) | 2022.10.03 |
---|---|
[C/C++] 03 - 제어 구조 기초 - 반복문과 배열 기초 (0) | 2022.10.03 |
[C/C++] 02 - 자료형과 연산 기초 (0) | 2022.10.02 |
[C/C++] 02 - 자료형과 연산 기초 - C프로그램 구조와 변수, 표준 입출력 기초 (0) | 2022.10.02 |
[C/C++] 01 - C언어 소개와 컴파일의 이해 (2) (0) | 2022.10.02 |