묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
if조건문이 복잡할때 처리속도 및 실행순서에 대하여..
2005.03.10 22:16
안녕하세요..
일전에 'if조건문의 사용을 남발하게 되면?'으로 질문드렸을때
답변주신 누구야?님, 새천년건강체조님, 플로렐라님(특히) 모두 감사드립니다..
이번에 다시한번 질문드립니다..
질문하는 저로써도, 너무나 초보적인 질문이라고 생각되지만,,
강좌하신 글들은 이렇게하면 된다..의 내용이 주류이고,
저같은 초보는, 상상력을 추가해서 이렇게 저렇게도 생각하게되지만
그결과가 어떻게되는지..설령 원하는 결과가 나왔다더라도, 최적으로 프로그래밍 한건지 잘 모릅니다.
그래서, 두가지만 질문드리겠습니다.
첫번째,
<? if($ABC==yes){?><table width=100 height=50><?} else {?><?}?>
위의 예문을 아래처럼,,
<? if($ABC==yes){?><table width=100 height=50><?} else { }?>
이런식으로 중간중간 생략해서 쓰면 그 결과값(혹은 속도)이 차이가 있는건가요? 없는건가요? 미묘하게라도..
두번째,
<? if($ABC==yes){?><table width=100 height=50><?} else {?><?}?>
이문장은 ABC값이 yes이면 <table width=100 height=50>값을 불러오고, 그외일경우는 안불러온다는 거라면,
그 조건 속에 또다시 조건을 넣고 넣고 하여 복잡하게 추가된 경우라면,
<? if($ABC==yes){?>
<table width=100 height=50>
<? if($DEF==yes){?><table width=100 height=50><?} else {?><?}?>
<? if($G==yes){?><table width=100 height=50><?} else {?><?}?>
<? if($hi==yes){?><table width=100 height=50><?} else {?><?}?>
<?} else {?>
끝.
<?}?>
이런식으로, 그러면 정확한 처리순서는 어떻게 되는건가요?
ABC값이 yes가 아닐경우에, 바로 else 의 [끝.]내용으로 넘어오는 것 맞나요?
제아무리 ABC가 yes일때 실행해야하는 구문이 많을지라도
ABC가 yes가 아닌값이라면 상관없이 바로 "끝."으로 연결되는건지, 아닌건지 궁금합니다.
왜냐면 그 중간중간에도 계속적으로 else가 있으니까요..
궁극적으로,, 처리속도가 너무나 궁금합니다..
답변주시면 고맙겠습니다..
일전에 'if조건문의 사용을 남발하게 되면?'으로 질문드렸을때
답변주신 누구야?님, 새천년건강체조님, 플로렐라님(특히) 모두 감사드립니다..
이번에 다시한번 질문드립니다..
질문하는 저로써도, 너무나 초보적인 질문이라고 생각되지만,,
강좌하신 글들은 이렇게하면 된다..의 내용이 주류이고,
저같은 초보는, 상상력을 추가해서 이렇게 저렇게도 생각하게되지만
그결과가 어떻게되는지..설령 원하는 결과가 나왔다더라도, 최적으로 프로그래밍 한건지 잘 모릅니다.
그래서, 두가지만 질문드리겠습니다.
첫번째,
<? if($ABC==yes){?><table width=100 height=50><?} else {?><?}?>
위의 예문을 아래처럼,,
<? if($ABC==yes){?><table width=100 height=50><?} else { }?>
이런식으로 중간중간 생략해서 쓰면 그 결과값(혹은 속도)이 차이가 있는건가요? 없는건가요? 미묘하게라도..
두번째,
<? if($ABC==yes){?><table width=100 height=50><?} else {?><?}?>
이문장은 ABC값이 yes이면 <table width=100 height=50>값을 불러오고, 그외일경우는 안불러온다는 거라면,
그 조건 속에 또다시 조건을 넣고 넣고 하여 복잡하게 추가된 경우라면,
<? if($ABC==yes){?>
<table width=100 height=50>
<? if($DEF==yes){?><table width=100 height=50><?} else {?><?}?>
<? if($G==yes){?><table width=100 height=50><?} else {?><?}?>
<? if($hi==yes){?><table width=100 height=50><?} else {?><?}?>
<?} else {?>
끝.
<?}?>
이런식으로, 그러면 정확한 처리순서는 어떻게 되는건가요?
ABC값이 yes가 아닐경우에, 바로 else 의 [끝.]내용으로 넘어오는 것 맞나요?
제아무리 ABC가 yes일때 실행해야하는 구문이 많을지라도
ABC가 yes가 아닌값이라면 상관없이 바로 "끝."으로 연결되는건지, 아닌건지 궁금합니다.
왜냐면 그 중간중간에도 계속적으로 else가 있으니까요..
궁극적으로,, 처리속도가 너무나 궁금합니다..
답변주시면 고맙겠습니다..
댓글 2
-
[PSR]GOM
2005.03.12 09:06
-
써니루루☆
2005.03.12 21:36
선처리기에 의해서 먼저 제거되 버립니다. 속도차를 느낄 수 없습니다.
이런것의 비교보다는 참조 연산자등의 이용으로 메모리의 차이라던가 stack과 heap의 메모리 분할을 잘하도록 함수 클래스 정리라던가 배열에서의 속도계산 등을 찾아보시는게 도움되실겁니다.
이미 5~6년전에 다 연구를 해봤던 내용들이니까요..
2. 첫번째 조건에 부합하지 않으므로 바로 끝.이 되는게 맞습니다.