메인 공지사항 기능소개 매뉴얼     TEST BOARD : [1]  [2]  [3]  [4]  [5]
내용없음9
내용없음10
      COMMUNITY
자유토크

주제토론,포럼

정보공유




if 와 switch 의 차이점이 궁금하다
 community
커뮤니티 > 주제토론,포럼
주제가 있는 토론 & 포럼 게시판입니다.
Main 글로 주제를 올리고 답글, 댓글로 의견을 교환하는 방식이면 되겠습니다.
   
  작성자 카스랑
  분 류 기술
ㆍ조회: 1626  ㆍ추천: 0         
ㆍ작성일: 2014-04-03 (목) 10:45
if 와 switch 의 차이점이 궁금하다
 
홈메뉴에 쇼핑몰을 적용하는 경우에
(쇼핑몰을 홈의 일부로 두는 구성)
 
쇼핑몰의 공지사항과 FAQ 가 쇼핑몰 스킨에 붙어 있어
홈스킨에서 쇼핑몰스킨이 각자 놀도록 하려면


공지보드와 FAQ 보드의 스킨구성2를 추가하고 
스킨구성2의 설정을 홈스킨으로 바꾼다음 
/skin_shop/standard/2_view_main/main_default.php 에서

<!-- ■ NOTICE & 고객구매후기 ... --> 앞에 추가
<? switch($CONFIG[board]) { case "shop";  $config='2'; break; } // 보드명 shop 인 경우, 글의 스킨구성번호를 지정 해줌 ?>
 
FAQ 는 수정
<area shape="rect" coords="16, 72, 135, 120" href="<?=$_SERVER['PHP_SELF']?>?board=tnshopfaq&config=<?=$config?>">


그리고 쇼핑몰 공지사항 보드글 링크부분은
function insert_here_public_board($board_name,$list_many){ // (보드명,출력갯수)
안에 동일하게 추가
<? switch($CONFIG[board]) { case "shop";  $config='2'; break; } // 보드명 shop 인 경우, 글의 스킨구성번호를 지정 해줌 ?>

이제 
홈스킨과 쇼핑몰스킨이 각자 움직임
 

IF 를 사용하니 조건분기를 안하고 황당하게도 조건변수에 변수값을 넣고 있어서
SWITCH 를 사용함

이거 왜그러는지 고수님께 의지합니다

       
콜라~
2014-04-03 13:03
회원사진
위와 같은 구성을 해보지 않아서 잘 모르겠지만
'조건변수에 변수값을 넣고 있어서' 이부분이 잘 이해가 되질 않네요.. 우선 if문을 어떻게 작성하셨는지를 보여주시는것이 저한테는 이해가 쉬울것 같습니다.
카스랑 네 콜라님
이렇게 했네요
if( $CONFIG[board] ="shop" ) {  $config='2'; }
그런데 분기를 못하길래 <?=$CONFIG[board]?> 를 찍어보니
shop 으로 나와요
현재 보드명은 다른건데 $CONFIG[board] 변수에 shop 을 선언한 격이 되더라고요
조건문인데 대입한 선언문이 되었다고 해야겠죠?
이 현상이 어떤 이유일까요?
4/4 00:21
     
콜라~
2014-04-04 01:22
회원사진
if( $CONFIG[board] ="shop" ) {  $config='2'; } 를
if( $CONFIG[board] =="shop" ) {  $config='2'; } 요렇게...^^
카스랑 아 문자비교
세상에나 제가 흥분했었네요^^
차분히할 일이네요 콜라님 감사합니다
4/4 11:20
     
기즈모SOFT
2014-06-29 00:39
회원사진
제목에 맞는 댓글 하나 추가할께요.

if문과 switch문은 코딩의 편의에 따라 마음데로 선택하여 사용하면 됩니다. 정답은 없으니까요.

그래도 실제로 필요한 용도가 있긴 한데, 어떻게든 저 두가지로 코딩은 가능합니다만 코딩을 이해하기 쉽냐 어렵냐의 차이가 발생하겠지요.

if문은 비교적 조건이 되는 항이 2항 이상으로 and 또는 or 로 조합되는 경우 및 '예/아니오'와 같은 이분법적인 판단이 필요할때 사용합니다.

switch문은 비교적 조건이 단순하고 여러 경우에 따른 선택지가 존재할 경우 사용합니다.

switch($a) {
   case 'aa' : // $a 의 값이 'aa' 와 같을 경우 실행
       echo('$a = aa');
       break;
   case 'bb' : // $a 의 값이 'bb' 와 같을 경우 실행
       echo('$a = bb');
       break;
   case 'cc' : // $a 의 값이 'cc' 와 같을 경우 실행
       echo('$a = cc');
       break;
   default : // 그 밖의 경우 실행
       echo('$a = etc');
}



if($a == 'aa') echo('$a = aa'); // $a 의 값이 'aa' 와 같을 경우 실행
elseif($a == 'bb') echo('$a = bb'); // $a 의 값이 'bb' 와 같을 경우 실행
elseif($a == 'cc') echo('$a = cc'); // $a 의 값이 'cc' 와 같을 경우 실행
else echo('$a = etc'); // 그 밖의 경우 실행

와 같이 바꿔 사용할 수 있습니다.




switch문의 특별함이 있는데, 이걸 뭐라 단어로 표현해야 할런지 모르겠네요.

switch($level) {
   case 'vvip' :
       $coupon[] = '영화예매권2장';
   case 'vip' :
       $coupon[] = '5000원상품권';
   case 'gold' :
       $coupon[] = '5%할인권';
   case 'member' :
       $coupon[] = '2시간무료주차권';
   default :
       $coupon[] = '포인트 10점';
}

와 같이 하면
$level이 'vvip'일 경우 모든 혜택을 받게 됩니다.
$level이 'gold'의 경우 5%할인권, 2시간무료주차권, 포인트10점을 받게 됩니다.
마지막으로 어떠한 경우든 포인트10점을 받게 됩니다.
이처럼 'break'가 없으면, 조건이 일치한 줄부터 이후 조건과 관계없이 순차적으로 다음 줄을 실행하게 됩니다.

if문으로 바꿔서 사용이 가능하지만 코드가 매우 지저분하게 됩니다.

$coupon[] = '포인트 10점';
if($level == 'member' or $level == 'gold' or $level == 'vip' or $level == 'vvip') {
   $coupon[] = '2시간무료주차권';
   if($level == 'gold' or $level == 'vip' or $level == 'vvip') {
       $coupon[] = '5%할인권';
       if($level == 'vip' or $level == 'vvip') {
           $coupon[] = '5000원상품권';
           if($level == 'vvip') {
               $coupon[] = '영화예매권2장';
           }
       }
   }
}

이처럼 코드 가독성을 크게 해치게 됩니다.

뭐라고 딱 꼬집어 말할 수는 없지만, switch문과 if문에 대한 확실한 이해와 몇차례 경험만 쌓인다면 그 차이를 확실히 알고 사용할 수 있게 될 것이라 생각합니다.
     
  0
3500
FILE #1 .
FILE #2 .
FILE #3 .
FILE #4 .
FILE #5 .
FILE #6 .
FILE #7 .
FILE #8 .
FILE #9 .
FILE #10 .
83 기술 이 사이트는 어떤 보드를 사용한걸까요? [2]+1 카스랑 2018-03-23 356
82 기술 게시글내 이미지 링크에 대하여 [2] 카스랑 2016-03-06 844
81 기술 트리그리드 간트챠트 [1] 카스랑 2016-02-23 818
80 기술 반응형웹 반응형웹? [5] 카스랑 2015-04-10 1551
79 기술 테크노트 프로슈머단 의향조사 [5] 카스랑 2015-03-30 1047
78 기술 서로 토론해서 방향을 정한다면 효과적일까요? [3]+9 카스랑 2015-01-10 1434
77 기술 테크프레임웍 적응력 강화를 바라며 [3]+2 카스랑 2014-10-29 1202
76 기술 여러분의 서버는 속도가? [6]+1 카스랑 2014-07-03 1298
75 기술 소스코드가 깔끔하면 좋겠죠 [3] 카스랑 2014-04-06 4966
74 기술 if 와 switch 의 차이점이 궁금하다 [3]+2 카스랑 2014-04-03 1626
73 기술 PHP 5.4.0 정식버전 릴리즈. PHP 5.4에서 바뀌는 점 [1] 카스랑 2014-02-01 1332
72 기술 다중업로드/다운로드의 한 [3]+2 카스랑 2013-08-04 7940
71 인터넷 다단계 회원관리 보드 어떻게.만들어요? [5] 창조시대 2013-07-28 1419
70 기술 소스파일 업로드 전송방식에 대하여 [1] 카스랑 2013-07-03 951
69 핫이슈 phpMyAdmin4.0.1 이 나왔는데 [4]+1 카스랑 2013-05-19 1964
68 기술 ICT 정보통신기술개발자는 작아야 한다 [2] 카스랑 2013-04-27 1080
123456