CR switch함수에 대해

 

switch 문을 언제 쓸까??그 유용성을 먼저 얘기 해보겠습니다.

 

마법 배우기를 예를 들어 봅시다.

마법 배우기에 목록에

 

비영사천문

성황령

사자후전사

하늘의기원

건곤대나이

...

동귀어진

 

이렇게 있다 칩시다.

 

if문으로 스크립트를 짜면

 

if(비영사천문을 선택했나?) { 맞으면 비영사천문 배우기}

if(성황령?) { 맞으면 성황령 배우기}

if(사자후전사를 선택했나?) { 맞으면 사자후전사배우기}

if(하늘의기원 선택했나?) { 맞으면 하늘의기원 배우기}

if(건곤대나이?) { 맞으면 건곤대나이 배우기}

...

if(동귀어진을 선택했나?) { 맞으면 동귀어진 배우기}

 

보이지 않지만 7번을 확인합니다. (마법이 30개 있다면 30번을 확인해야 하죠.)

사실 이러한 방법은 좋은 방법이 분명 아닙니다.

 

그러면 switch문을 보겠습니다.

 

switch(마법이름)

{

case 비영사천문:        {비영사천문을 배웁니다.}

case 성황령:    {성황령을 배웁니다.}

case 사자후전사:        {사자후전사를 배웁니다.}

case 하늘의기원:        {하늘의기원을 배웁니다.}

case 건곤대나이:        {건곤대나이를 배웁니다.}

...

case 동귀어진:    {동귀어진을 배웁니다.}

}

 

이런식으로 사용하죠. 다만, if문과 확연히 다른점은 마법이름을 체크하여 해당 마법에 대한

{}만 실행한다는 것이죠.

if와 end; 에 익숙하신 분이 많은데 더욱 복잡해지고 난해하게 만듭니다.

 

 

================================================

 

사실 위에 알려드린 예를 살짝 오류가 있습니다.

아래의 예를 통해 제대로 사용하는 방법을 보겠습니다.

 

 

 

list2(@m,0,1,"그래, 어떤 마법이 궁금한가? 만약 이 마법이 없다면. 배울수 있게 도와주도록 하겠네.","건곤대나이","백호령","하늘의기원");

 

위 스크립트는 아래와 같은 창을 띄우죠.

 

@m 변수에 건곤대나이는 1을, 백호령은2, 하늘의기원은 3, 동귀어진은 4로 값을 넣습니다.

 

 


 

 

switch(@m){     // 이 부분에서 선택된 @m 값을 확인합니다.   

 

        case 1:     //@m이 1이라면

            set @name$, "건곤대나이";

            break;    // 이것은 switch문을 빠져나가는 명령입니다.

        case 2:     //@m이 2이라면

            set @name$, "백호령";

            break;

        case 3:    //@m이 3이라면

            set @name$, "하늘의기원";

            break;

        case 4:    //@m이 4이라면

            set @name$, "동귀어진";

            break;        

 

        } // break;문을 쓰면 바로 이곳으로 오는 거죠.    

 

 

너무 if문만 쓰시지말고 경우에 따라 더 유용할 수 있으니 참고 바랍니다.!

 

 

 

저작자 표시 비영리 변경 금지
신고

Comments 9