1.
void insert( int c ) {
if (c == 0) {
c = 1;
std::cout << "c==0" << std::endl;
return;
}
if (c == 1) {
std::cout << "c==1" << std::endl;
return;
}
}
2.
void insert2(int c) {
if (c == 0) {
c = 1;
std::cout << "c==0" << std::endl;
} else if (c == 1) {
std::cout << "c==1" << std::endl;
}
return;
}
결과는 똑같은데
첫번째껀 if 계속 쓰는거고
조건 충족되면 바로 함수 종료
두번째꺼는 if else로 나눠 쓰고
마지막에 함수 종료 인데
첫번째껀 조건 하나 확인하고 바로 종료하니까
처리가 더 빠르지 않을까요?
두번째꺼는 대신 리턴문이 하나로 쭐었다는게 장점?
if(c == 0)을 만족하면 else if(c == 1)은 자동으로 스킵돼요 - 엔타로 하스켈! - 엔타로 하스켈!
즉, if 두 개를 쓰고 중간에 리턴하는 거나 if else 문을 쓰는 거나 별 차이 없어요 - 엔타로 하스켈!
더 깊게 들어가면 다르겠지만, 그건 어셈 고수분들이 얘기해주실 거예요 - 엔타로 하스켈!
if-else if-else는 cmp + j 로 interpreted.. 즉 cmp는 true 이후에는 이루어 지지 않음
둘다 안좋은 코드입니다. 둘다 띄어쓰기를 안하잖아요 크쿔. 햫
상수로 분기가 결정되어 있어서 1번이 실행된다면 2번이 실행되지 않는다고 보장된다
그런데 2번코드는 if분기를 두번하고 있으므로 비효율적인 코드 if조건식이 상수가 아닌 변수끼리의 비교라면 결과도 달라질수있고
상수식은 switch로 표현하는게 정답