티스토리 뷰
Selection Statements
C의 문장(statement)의 대부분은 문장이 실행되는 순서에 어떤 영향을 미치는지에 따라 세 가지 범주로 분류된다.
■ Selection statements : if 및 switch 문을 사용하면 프로그램이 특정 실행 경로를 선택할 수 있다.
■ Iteration statements : while, do 및 for문은 반복을 지원한다.
■ Jump statements : break, continue 및 goto문은 프로그램이 다른 위치로 무조건 점프한다. (return문도 포함)
Logical Expressions
■ 많은 프로그래밍 언어에서 i<j 같은 표현식은 "Boolean" 또는 "logical" 타입을 갖는다. 이러한 타입은 거짓 그리고 참 두 가지 값만 가진다. 그러나 C에서 i<j 같은 comprision은 0(false) 또는 1(true)의 정수를 반환한다.
■ 관계연산자(<. >, <=, >=)은 왼쪽 결합성을 가진다. 따라서 i < j < k 표현식은 (i < j) < k 와 동일하다.
■ 같음연산자(==, !=)은 왼쪽 결합성을 가지며, 0(false) 또는 1(true)를 반환한다.
Logical Operators
Symbol | Meaning |
! | logical negation |
&& | logical and |
|| | logical or |
■ 논리 연산자는 결과로 0 또는 1을 반환한다. 종종 피연산자는 0 또는 1의 값을 갖지만 필수사항이 아니다. 논리 연산자는 0이 아닌 피연산자를 참 값으로, 0인 피연산자를 거짓 값으로 처리한다.
■ &&와 || 둘다 피연산자의 "단락"평가를 수행한다. 먼저 왼쪽 피연산자를 평가 한 다음 오른쪽 피연산자를 평가한다. 표현식의 값을 왼쪽 피연산자의 값만으로 추론 할 수 있는 경우 오른쪽 피연산자는 평가되지 않는다.
The "Dangling else" Problem
■ C에서는 else 절이 아직 else와 쌍을 이루지 않은 가장 가까운 if 문에 속한다는 규칙을 따른다.
Boolean Values in C99
■ _Bool 타입을 제공하는 C99에서는 오랫동안 Boolean 타입이 없었던 문제가 해결되었다. 이 버전의 C에서는 Boolean 변수가 _Bool 작성을 통해 선언 할 수 있다.
■ _Bool은 정수 타입(정확하게는 부호없는 정수 타입)이므로 _Bool 변수는 실제로 변장 된 정수 변수이다.
■ _Bool 유형을 정의하는 것 외에도 C99는 새로운 헤더 <stdbool.h>를 제공하므로 Boolean 값으로 작업하기가 더 쉬워진다. 이 헤더는 _Bool 을 나타내는 bool 매크로를 제공한다. ex) bool flag; // same as _Bool flag;
■ <stdbool.h> 헤더는 또한 각각 1과 0을 나타내는 true 및 false라는 이름의 매크로를 제공한다.
The switch Statement
swtich ( expression ) {
case constant-expression : statements
...
case constant-expression : statements
default : statements
}
■ Controlling expression : 스위치 뒤에있는 괄호 안에는 정수 표현식이 있어야 한다.
■ Case labels : 상수 표현식은 변수나 함수 호출을 포함 할 수 없다는 점을 제외하면 일반 표현식과 매우 유사하다. 따라서 5는 상수 표현식이고 5+10 또한 상수 표현식이나 n+10은 상수 표현식이 아니다. 레이블 케이스에서는 정수로 평가해야 한다.
Q&A
Q. i가 정수형 변수이고 f가 실수형 변수일 때 조건식의 타입은 무엇인가? (i>0 ? i : f)?
A. 조건식(삼항연산자)에 int 와 float이 섞인다면 조건식은 float 타입을 가진다. 만약 i>0 이 참이라면, 정수형 변수 i가 실수형으로 전환된다.
- Total
- Today
- Yesterday
- unreal enigne
- DP
- C++게임개발
- 퀸 움직이기
- 언리얼 자동화
- opengl
- 홍정모의 게임 만들기 연습 문제 패키지
- 정보올림피아드
- 백준 27469
- 숫자판 만들기
- Codeforces
- BOJ 2365
- 백준 2365
- UE5.3
- 백준
- 언리얼 프로젝트 재생성 자동화
- BOJ 27469
- Unreal Engine
- tetris
- 초등부
- C++게임
- ndisplay
- 테트리스
- 언리얼 프로젝트 재생성
- ICPC 후기
- 코드포스
- pygame
- Python
- OpenVDB
- 브레젠험 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |