답변 4개
조건 2개를 비교하는 거면 당연히 if문이 쉽죠
스위치 문으로 하려면 이중 스위치를 해야되서 복잡하죠
근데 질문이 스위치문으로 해달라는 거였기 때문에 스위치문으로 작성해드렸고요
조건문이 천개가 되더라도
if 문과 스위치 문의 속도는 거의 비슷합니다 (조건이 단일이고 비교해야 하는 항목(case) 가 많을경우
jump 형식인 스위치가 물론 조금더 빠르지만
그 빠름이 속도에 월등한 차이가 있거나 할 정도로 크리티컬 한 것도 아니고요
이런것보다 조건이 많아진다면 해당 조건을 줄일수있게 설계에 신경을 쓰시는게 더 좋을꺼 같습니다
답변에 대한 댓글 2개
조건 분기를 최대한 효율적으로 줄여야죠.
값이 모두 정해진 경우 if / else if문에서의 논리 연산이야 괜찮지만,
조건문에 함수를 호출해 결과값을 구하는 등의 추가 동작이 있다면 경우에 따라 느려질 수 있죠.
단순하게 switch문이 빠르다고, 무조건 switch문을 사용한다? → X
댓글에 예로 들었지만 비슷한 방식으로 불필요한 조건을 제거할 수 있습니다.
댓글을 작성하려면 로그인이 필요합니다.
네이버 검색하다 안되서
스위시문에서 if문처럼 && (AND) 로
$mb_1=='남성' && $mb_2==10 시작함 편한데 안되나요?
위스위치문대로함 이프문처럼 너무 복잡할텐데요
제시한 조건은 두개인데
조건이 사실 많아서 조사하다보니 스위치문은 점프한다해 속도가 조금더 낳지 않을까해서요
답변에 대한 댓글 2개
이프문 스위치문 양은 같아도 스위치문은 해당조건 점프한다해
조건이 천개일경우 일일히 내려가는 이프문보다 아무래도 빠를듯해서요
문자열 결합으로 한번에 처리하면 되겠습니다. (오타 수정해놨어요.)
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p><?php
$mb_1 = "woman";
$mb_2 = 20;
$result = 0;
switch ($mb_1) {
case "man" :
switch ($mb_2) {
case 10 :
$result = 20;
break;
default :
$result = 5;
break;
}
break;
case "woman" :
switch ($mb_2) {
case 20 :
$result = 30;
break;
default :
$result = 5;
break;
}
break;
default :
$result = 5;
break;
}
echo $result;
?></p>
<p>
답변에 대한 댓글 1개
중첩 사용을 하더라도 불필요한 부분을 줄이면 좀 낫겠죠?
참고로 추가합니다.
[code]
<?php
$mb_1 = 'woman'; // 해석이 필요없는 문자열은 '로 감싸주면 좋아요.
$mb_2 = 20;
$result = 5; // 기본값. 아래 조건에 맞을 때만 해당 값 할당
switch ($mb_1) {
case 'man' :
switch ($mb_2) {
case 10:
$result = 20;
break 2;
}
break;
case 'woman' :
switch ($mb_2) {
case 20:
$result = 30;
break 2;
}
break;
}
echo $result;
[/code]
댓글을 작성하려면 로그인이 필요합니다.
조건이 2가지인데, 굳이 switch문을 사용해야 할 이유가 있나요?
알겠다는 if문을 그냥 사용하는 것이 낫겠는데요.
</p>
<p>if ( $mb_1=='남성' && $mb_2==10 ) {</p>
<p> // 20</p>
<p>} else if ( $mb_1=='여성' && $mb_2==20 ) {</p>
<p> // 30</p>
<p>} else {</p>
<p> // 5</p>
<p>}</p>
<p>// 굳이 switch문을 사용하겠다면 아래처럼 처리하는 방법도 있습니다.</p>
<p>switch ( $mb_1.$mb_2 ) { // 문자열 결합</p>
<p> case '남성10':</p>
<p> // 20</p>
<p> break;</p>
<p> case '여성20':</p>
<p> // 30</p>
<p> break;</p>
<p> default:</p>
<p> // 5</p>
<p>}</p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
그리고 저렇게 단안하기 쉽지 않은데 대단하세요,
검색등 외부 많이 뒤지고 며칠조사햇거든요
조금차이난다해도 익숙한 이프문가기로 했습니다
바쁘신데 BiHon 님도 많은도움되엇어요 채택은 코딩이 아니고,,선택부분땜에
다른분해드린거 이해부탁드립니다 2002 블랙호랑이해 건승하십시요 감사합니다.