Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- C
- SSH
- C#
- JSON
- VS Code
- 프로그래머스
- Docker
- C++
- windows forms
- YOLO
- 기타 연주
- paramiko
- OpenCV
- Python
- 채보
- 핑거스타일
- label
- ubuntu
- 오류
- error
- mysql
- pytorch
- Linux
- Numpy
- pip
- 컨테이너
- pandas
- LIST
- Visual Studio
- Selenium
Archives
- Today
- Total
기계는 거짓말하지 않는다
Short Circuit Evaluation(SCE, 단축 평가) 본문
단축 평가(SCE)란 논리 연산에서 앞서 계산된 값이 뒤의 조건을 확인하지 않아도
확실하게 만족할 때 뒤의 조건을 계산하지 않고 생략하는 것을 말한다.
AND 연산 시 왼쪽 이미지는 두 조건 모두 true 인지 확인하게 되어 num이 3이 된 것을 볼 수 있다.
그러나 오른쪽 이미지는 앞선 조건이 false 이기 때문에 더 이상 확인하지 않는다.
OR 연산 시 왼쪽 이미지는 앞 조건이 true 이기 때문에 더 이상 확인하지 않고 num 값이 변하지 않은 것을 볼 수 있다.
반대로 오른쪽 이미지는 앞 조건이 false 이기 때문에 뒤의 조건을 확인하고 num 값이 변한 것을 볼 수 있다.
C언어 뿐만 아니라 다른 언어도 마찬가지이다.
조심할 것은 여러 조건을 논리 연산 할 경우 위 이미지 처럼 변수 값을 변경하고 후에 작성된 코드에 영향을 미친다면
원하는 결과가 나오지 않을 뿐더러 찾기도 힘들다. 따라서 이와 같은 코드는 작성하지 않는 것이 좋다.
또 이러한 결과를 바탕으로 루프를 시행할 때 최대한 앞선 조건이 계산되면
끝날 확률이 높은 조건문을 작성하는 것이 비교 연산 횟수를 줄일 수 있을 것이다.
'C' 카테고리의 다른 글
이중 연결 리스트(Doubly Linked List) (0) | 2021.04.25 |
---|---|
링크드 리스트(Linked List) (0) | 2020.12.12 |
원형 큐(Circular Queue) (0) | 2020.12.09 |
스택(Stack) (0) | 2020.12.09 |
C언어 키워드 (0) | 2020.12.05 |
Comments