독하게 시작하는 C 제5장 두 번째 독하게 시작하는 C 강의.

논리연산자

식||식2&&식3

Short Circuit - 논리연산에 모두 적용.(필요없는 연산은 안함.)
L->R 논리 연산은 왼쪽에서 오른쪽으로 진행.
1>~~&&2<~~
1번 연산에서 거짓 나오면 2번 연산을 할 필요가 없다.
1&&2&&||3
or로 하면 나눈다.(1번과 2번 연산이 묶인다. 1번에서 실패하면 바로 3번 참, 거짓을 판별함)

조건식 ->판단 시간
  1. 마음>=김혜수 
  2. 외모>=설현
A : 1&&2
B : 2&&1
빠른 시간에 판단 가능한 것을 앞으로 빠르게 판단 가능한 외모를 앞에둔 B가 정답.
  1. 빠른 시간에 판단가능한 것을 앞으로(왼쪽에서 오른쪽으로 진행되는 쇼트 서킷의 특성에 따라)
  2. 자주 적중할 조건을 앞에 배치.(OR일때. 맨처음 식에서 참 나오면 뒤에 식들 볼 필요없이 참)
  3. 자주 틀릴 조건을 앞에 배치(AND일때, 맨처음 식에서 거짓 나오면 뒤에 식들 볼 필요없이 거짓)
부정 연산 권하지 않는다. 논리적 실수 할 가능성이 높다. 직관성 애매.(!a라고 쓸때 등.)
코드는 일기가 아니다. 많은 사람과 나누고 남이 알아볼 수 있게 해야 함. 많이 나누다보면 남에게도 인정받고 스스로도 만족하는 개발자가 비교적 빠르게 될 수 있다.

a&&b&&c||e&&f

(a에서 틀리면 바로 d로, d에서 맞으면 e&&f까지 갈 필요없이 참.)

삼항 연산자 : 코드 단순화 외에는 장점 없다.
조건 ? 항 : 항 
만약 printf("%d",a>b ? a: b);라고 하면 참이면 a가 거짓이면 b가 .
그 자체가 들어가는 것. 그래서 a=2 : a=3이렇게 중복할 필요없이 a= 2 : 3이라고 표현하는 거.

Short Circuit 
프로그램은 정해진 순서의 흐름에 따름.
경우의 수를 선택하는 결정 근거, 방법이 논리식이다.

최댓값 구하기.
a,b,c중 가장 큰 것을 구하여라

토너먼트 방식 : 이분 검색(binary search)
서바이벌 방식 : 순차 검색(sequential search)

정렬 <- 최댓값(최솟값)을 여러 번 구하는 것.

코드 짤때 중요한 것
비교횟수
유지보수 및 확장성
메모리 사용량

CPU 사용량과 메모리 사용량 : 비용.
BUT, 람보르기니 VS 연비 20km/l짜리 차.
특정 작업을 수행할 때는 고성능이 중요할 때도(like 자동차 경주할때 람보르기니 타는 것)
일반 pc(시내 다닐때 연비 20km/l차가 나은 것)

덧글

댓글 입력 영역