GameMaker강좌[GMS2]/GMS2기초강좌

[게임메이커 강좌-기초][GMS2] 삼항연산자(? :)

타락카얀 2023. 12. 30. 10:27
728x90

 

 

GAME MAKER 강좌

 

KAYAN

 

 

 

 

 

 

 

◈ 삼항연산자(? :)

 

 

삼항연산자(conditional operations, ternary operations)는 피연산자를 3개 가지는 조건 연산자입니다.

 


   //기본식(? :)

   조건문 ? 표현식1(참) : 표현식2(거짓)


   //또는, 변수에 반환값을 전달할 때,

   변수 = 조건문 ? 표현식1(참) : 표현식2(거짓)


 

세 개의 항은 각각 조건문 하나와 선택문 두 개로 구성되며, if else 문을 축약한 형식입니다.

조건문이 참일 때 참의 표현식1을 연산하고, 거짓이면 거짓의 표현식2을 연산합니다.

예를 들어, 아래와 같은 식이 있을 때,

 

예)


   value = num1 ? 100 : 200 ;

 

이것은 조건 num1이 참이면 value 에 100 반환값을 할당하고, 거짓이면 200 반환값을 할당합니다.

if else 문으로 풀이한다면 아래와 같습니다.

 


   if num1{
      value=100;
   }
   else{
      value=200;
   }


 

참과 거짓에 들어가는 표현식에는 단순히 값을 반환하여 변수에 할당할 수 있고, 다른 함수, 또는, 특정 이벤트를 실행할 수도 있습니다.

이걸 더 폭 넓게 응용한다면, 아래와 같이 사용할 수도 있습니다.

 


   draw_text(x, y, "The fee is " + (global.Member ? "$2.00" : "$10.00"));
   
   path_start(((global.level > 10) ? path_hard : path_easy), 2, path_action_reverse, true);


 

먼저 첫번째는 global.Member 값이 true 일 때, 문자열에 "$2.00"를 더해 "The fee is $2.00"를 글자를 표시하고,

false 라면 "The fee is $10.00" 으로 표시합니다.

두번째는 globlal.level 이 10보다 클 때, 패스 path_hard 를 실행하고, 그렇지 않을 때는 path_easy를 실행합니다.

 

 

 

 

 

 

 

300x250