• SEARCH

    통합검색
  • GAMEZONE
    • 커뮤니티
      • 공지사항
      • 유저게시판
        • 등업게시판
        • 출석체크
        • 정회원 무료자료실
      • 스크린샷
      • 인증자료실
    • 리니지
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 메이플스토리
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 바람의나라
      • 자유게시판
      • 홍보게시판
      • 자료게시판
        • 유틸자료실
        • 소스자료실
        • 클라이언트
        • 팩 자료실
      • 연구게시판
        • 개발내역
        • 질문과답변
        • 기타
      • 강의게시판
        • DR
        • CR
        • 구버전
        • 클라이언트 개조
        • 노하우 게시판
        • 게임공략 & 팁
    • 다크에덴
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 믹스마스터
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 라그나로크
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 기타게임
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 게임강의
    • 비베&포토샵
      • 자유게시판
      • 자료실
        • 일반자료실
        • 포인트 자료실
      • 노하우게시판
      • 포토샵게시판
    • 모바일
      • 게임공략
      • 포인트 자료실
      • 유틸자료실
      • 자유게시판
  • 바람의나라 강의게시판 CR
    • 바람의나라 강의게시판 CR
    • [CR] 주작 // switch문 추가 강의

      • 우지냥
      • 2016.12.03 - 20:27 97

    switch문이 무엇인지 모르시는 분들은 동일 게시판의 해컴님이 쓰신 강의를 보시고 오시기 바랍니다.

     
    글로 된 강의지만 이해하여 도움이 되셨으면 좋겠습니다.
     
    -------------------------------------------------------------------------------------------
     
    switch문은 많은 쓰임을 가지고 있습니다.
     
    먼저 switch문을 알려드리기 전에 goto문과 label에 대해서 따로 강의하고 싶지만
     
    일단은 위를 조금이라도 이해하고 계신 분들을 대상으로 강의하겠습니다.
     
    먼저 해컴님의 강의를 보고 오신 분이라면 switch라고 하는 선택문이 어떨 때 쓰이는지,
     
    어떠한 형식으로 쓰이는지 대충 감을 잡고 오셨을 것이라고 생각됩니다.
     
    저는 추가적으로 switch문이 가지는 유용성에 대해서 살펴볼 것입니다.
     
     
     
     
    1. case문은 조건을 실행하는 것이 아닌, 조건으로의 이동이다.
     
    위의 말만 보고는 조금 이해가 안 되시는 분들을 위해 if문과 비교해서 설명하도록 하겠습니다.
     
    if문의 경우에는 { } (중괄호) 안에 있는 내용을 실행하는 것을 의미합니다.
    (if문에 대한 지식이 부족한 분들은 조건문 기초 강의를 보고 오시는 것을 추천드립니다.)
     
    하지만 switch문은 if문과는 다르게 해당 label로 이동하는 것을 의미합니다.
     
    아래의 예를 들어 살펴보도록 하죠
     
    switch(@list)
    {
      case 1:
           (@list 변수가 1일 때 실행될 내용)
           break;
      case 2:
           (@list 변수가 2일 때 실행될 내용)
           break;
    }
     
    대충 이런식으로 해컴님의 강의를 보신 분들은 switch문의 사용법과 형태에 대해서 이해하고 있을 것입니다.
     
    위를 if문으로 억지로 변경하자면 아래와 같습니다.
     
    if(@list == 1) { @list 변수가 1일 때 실행될 내용 }
    else if(@list == 2) { @list 변수가 2일 때 실행될 내용 }
     
    위의 switch문과 if문이 보기에 같아보이시나요?
     
    물론 이 경우에는 둘 다 완벽하게 똑같은 동작을 합니다.
     
    하지만 위에서 말했듯이 switch문은 조건을 실행하는 것이 아니라 조건으로의 이동입니다.
     
    위의 break는 switch문의 종료를 의미하는 구문입니다.
     
    그렇다면 위의 switch문을 자세히 설명해보면, @list 변수가 1일 때 case 1: 이라는 곳으로 이동하여
    break를 만나 switch가 끝나는 지점인 } (중괄호 닫힘) 으로 이동된다고 해석할 수 있겠네요.
     
    이 차이를 인식하는 것이 왜 중요하냐면, switch문을 아래와 같이 응용할 수 있습니다.
     
    EX)
    switch(@list)
    {
      case 1:
         ("1" 메시지를 띄운다)
      case 2:
         ("2" 메시지를 띄운다)
         break;
    }
     
    자 위의 예제에서 @list 변수가 1일 경우에는 위에서 설명했듯이 case 1: 이라는 곳으로 이동하여
    "1"이라는 메시지를 띄우게 되죠?
    하지만 switch문을 끝내는 구문인 break가 없기 때문에 switch문은 끝나지 않고 다음 라인을 읽게 됩니다.
    그렇다면 다음 라인인 case 2:를 읽어들인다는 얘기가 되죠. 여기까지 이해 되시나요?
    그러고도 아직 break문을 만나지 못했으니 "2"라는 메시지를 띄우게 되겠군요.
    그리고 그 다음줄에서 break문을 만나서 switch문이 종료가 되겠네요.
     
    그렇다면 결론적으로 @list 변수가 1일 경우에는 "1"의 메시지만을 띄우는 것이 아니라
    "1"메시지와 "2" 메시지가 둘 다 뜬다는 것을 이해 하셨나요?
     
    이런 식으로 switch문을 더 다양한 경우에 적용해서 응용할 수 있습니다.
     
     
     
     
    2. default에 대한 설명
     
    switch문을 공부 하시면서 "그렇다면 어떠한 경우에도 해당되지 않는 경우에는 어떻게 되는거지?"
     
    라고 의문을 품으셨다면 칭찬해 드리고 싶네요.
     
    제가 쓴 조건문 기초 강의를 보고 오셨으면 else문과 else if에 대해서 이해하고 계실겁니다.
     
    default라는 것은 if문의 else와 성격이 비슷하다고 보시면 됩니다.
     
    switch문 내부에서 어떠한 경우에도 해당되지 않을 경우에는 switch문은 자동으로 종료가 됩니다.
     
    하지만 해당되지 않을 경우마다 자신이 원하는 바를 처리해주고 싶을 때 사용하는 것이 default 입니다.
     
    예제를 볼까요?
     
    EX)
    switch(@list)
    {
      case 1:
         (@list 변수가 1일 때 실행될 내용)
         break;
      case 2:
         (@list 변수가 2일 때 실행될 내용)
         break;
      default:
         ????????
         break;
    }
     
    예제를 문제처럼 낸 것 같은데 위의 ??????에 들어갈 내용은 과연 무엇일까요?
     
    정답은 바로 @list 변수가 1도 아니고 2도 아닐 때 실행될 내용 입니다.
     
    else 문과 성격이 많이 비슷하다는 것을 인지하시겠나요?
     
    default를 알고 계신다면 더 많은 부분에 응용이 가능합니다.
     
    -------------------------------------------------------------------------------------------
     
    물론 1번 주제와 2번 주제를 동시에 쓰셔서 더욱 많은 응용을 하실 수 있습니다.
     
    질문은 댓글로 남겨주시면 실시간으로 답변 달아드리겠습니다.

    [출처] 브로드캠프 - http://broadcamp.com/bbs/board.php?bo_table=e5&wr_id=44

    이 게시물을..
    N
    0
    0
    • [CR] 주작 // [기타] 해당 좌표의 아이템 읽어오기우지냥
    • [CR] 그림과 함께 하는 랭킹적용(랭킹자료포함)행복e
    • 34
      우지냥

    우지냥 님의 최근 글

    테라 ver 100 버전 1166 13 2022 11.25 러스티 하츠 422 2 2022 11.19 카발 펫 만렙 리미트 30으로 변경 272 2020 09.22 카발 / 신검(포스칼리버), 골렘 구현 460 2 2020 09.15 카발온라인 루피 펫 ㅋㅋㅋㅋ 504 4 2020 09.03

    우지냥 님의 최근 댓글

    와.. 이거 없어서 블소 포기 했는데 ㄷㄷ 2023 11.15 오... 라그나로크 2023 07.11 파일이 2개라 4만 포인트인가보네요 ㄷㄷ 2023 06.30 오... 감사합니다! 2023 06.30 다 폐쇄형으로 운영해서 그렇죠 뭐 2023 04.18
    글쓴이의 서명작성글 감추기 
    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • [CR] 주작 // [기타] 해당 좌표의 아이템 읽어오기
    • [CR] 그림과 함께 하는 랭킹적용(랭킹자료포함)
    • 목록
      view_headline
    × CLOSE
    기본 (92) 제목 날짜 수정 조회 댓글 추천 비추
    분류 정렬 검색
    92
    전체 노획 소스.
    프렌치좋아 2024.03.31 - 19:15 24
    91
    링클래식 APM GM 설정 오류 해결법
    마렬 2020.05.14 - 18:53 362
    90
    시간마다 나오는 공지를 수정하려면!
    하늘별풍선 2020.05.07 - 05:08 178
    89
    [CR] Bind Failed 오류 발생 시
    누스 2018.08.28 - 21:55 351
    88
    (초심자 관점) 2. CR 구축 방법
    하얀달 2017.01.15 - 17:06 3786
    87
    (초심자 관점) 1. APMSETUP7 다운 방법
    하얀달 2017.01.15 - 16:30 1659
    86
    [CR] 함수 기능 정리
    마사카 2017.01.07 - 05:18 4124
    85
    CR 운영자 명령어
    웨이1 2017.01.03 - 23:14 2325
    84
    CR 스크립트 if 문
    웨이1 2017.01.03 - 23:12 575
    83
    CR 변수
    웨이1 2017.01.03 - 23:11 392
    82
    스크립트 지식
    웨이1 2017.01.03 - 23:10 695
    81
    아이템 체크 사용자 정의 함수
    웨이1 2017.01.03 - 23:06 388
    80
    npc생성
    웨이1 2017.01.03 - 23:04 598
    79
    cr shop_db 참고
    웨이1 2017.01.03 - 22:46 342
    78
    맵블럭 오류
    웨이1 2017.01.03 - 22:44 465
    77
    CR 아이템 추가
    웨이1 2017.01.03 - 22:41 940
    76
    소지품 확인 사용자 정의 함수
    웨이1 2017.01.03 - 21:29 293
    75
    [CR] 인던 추가방법
    웨이1 2017.01.03 - 21:27 1457
    74
    가독성 높은 스크립트 짜기!
    김돌돌 2016.12.24 - 22:27 654
    73
    서버 느리게하는 요소
    김돌돌 2016.12.24 - 01:30 971
    72
    프바 몹추가 팁
    김돌돌 2016.12.24 - 01:29 1005
    71
    cr 구축법
    김돌돌 2016.12.24 - 01:28 1527
    70
    맵 연결포트 강의입니다.
    김돌돌 2016.12.24 - 00:07 398
    69
    머리 염색 NPC 강의
    옹동봉 2016.12.22 - 20:36 165
    68
    [CR] ㅇㅇㅇㄹ // cr 초간단 강의 onpclogin
    우지냥 2016.12.18 - 13:30 350
    67
    [CR] cr에서 숫자값을 저장할 수 있는 함수
    우지냥 2016.12.18 - 13:30 133
    66
    스크립트 팁 - 가독성 좋게해주는 팁
    우지냥 2016.12.09 - 07:21 194
    65
    유저가 접속안했을때 아이피 쉽게 알아낼수있는 간단한 TIP입니다
    우지냥 2016.12.09 - 07:20 271
    64
    [CR] Chapter. 3-1 꼭 알아둬야할 CR의 문제점
    우지냥 2016.12.03 - 20:34 798
    63
    [CR] 동화 // 조건의종류
    우지냥 2016.12.03 - 20:33 115
    62
    [CR] 동화 // 조건문의 기초
    우지냥 2016.12.03 - 20:33 113
    61
    CR] 동화 // 변수란 무엇인가?
    우지냥 2016.12.03 - 20:33 134
    60
    [CR] 동화 // 간략하고 짧은 강의
    우지냥 2016.12.03 - 20:32 206
    59
    [CR] 원거리 공격마법 만들기
    우지냥 2016.12.03 - 20:32 351
    58
    [CR] 전설 // 이전 강의에 이은 2번째 강의!
    우지냥 2016.12.03 - 20:31 199
    57
    [CR] 전설 // 허접한 강의(전반적인 스크립트 설명)
    우지냥 2016.12.03 - 20:31 284
    56
    [CR] 이영아 // callfunc
    우지냥 2016.12.03 - 20:31 177
    55
    [CR] Chapter. 2-2 데이터베이스[ 엔피씨 ]강의
    우지냥 2016.12.03 - 20:30 123
    54
    [CR] Chapter. 2-1 데이터베이스[ 엔피씨 ]강의
    우지냥 2016.12.03 - 20:30 247
    53
    [CR] Chapter. 1-2 통합파일의 구조체( 무료 )
    우지냥 2016.12.03 - 20:30 456
    52
    [CR] Chapter. 1-1 CR이라는 구동기에 대한 이해( 무료 )
    우지냥 2016.12.03 - 20:29 527
    51
    [기타] 레이더즈 // IPv4 Address 구조강좌..
    우지냥 2016.12.03 - 20:29 138
    50
    [CR] 레이더즈 // 상점NPC만들기..
    우지냥 2016.12.03 - 20:29 190
    49
    [CR] 주작 // CALLFUNC "SLOTCHECK"
    우지냥 2016.12.03 - 20:28 96
    48
    [CR] 주작 // CALLFUNC "ITEMCOUNT
    우지냥 2016.12.03 - 20:28 99
    47
    [CR] 주작 // [기타] 해당 좌표의 아이템 읽어오기
    우지냥 2016.12.03 - 20:27 156
    [CR] 주작 // switch문 추가 강의
    우지냥 2016.12.03 - 20:27 97
    45
    [CR] 그림과 함께 하는 랭킹적용(랭킹자료포함)
    행복e 2016.11.30 - 19:28 346
    44
    [CR] [스크립트] '스크립트'의 가장 기초적인 설명3
    로이로이로이로이 2016.10.25 - 16:50 159
    43
    [CR] [스크립트] '스크립트'의 가장 기초적인 설명2
    로이로이로이로이 2016.10.25 - 16:50 167
    • 1 2
    • / 2 GO
  • GAMEZONE
 GAMEZONE all rights reserved.
by OrangeDay