2012-07-07 5 views
0

오늘은 AS3 코드를 정리하고 지저분한 if/else if/else 문을 switch 문으로 대체하려고합니다.AS3 switch case 문에서 여러 변수와 복합 표현

private const myConstant:int = 3; 
private var someNumber:int = 1000; 
for(var i:int=0; i < someNumber; i++){ 
    switch(i, myConstant){ 
     case 0: 
      function1(); 
      break; 
     case (i % myConstant == 0): 
      function2(); 
      break; 
     default: 
      function3(); 
    } 
} 

내 프로그램에는 더 많은 case 문과 변수가 있지만, 간단하게하기 위해 프로그램을 잘라 냈습니다. 이 예제에서는 루프의 세 번째 반복마다 function2()을 호출하려고합니다. 자, myConstant은 다른 곳에서 사용되는 클래스의 중요한 설정입니다. 따라서 리터럴 3을 표현식에 넣을 수는 없습니다.

  1. 하나의 스위치에서 여러 변수 (및 상수)를 평가할 수 있습니까?
  2. 예제에서 두 번째 case 문과 같은 표현식을 평가할 수 있습니까?

답변

2

switch 키워드는 괄호 안에 하나의 표현식 만 사용합니다 (위의 쉼표로 구분 된 변수는 하나의 표현식으로 계산되지 않습니다).

case 키워드는 하나의 표현식도 평가해야합니다.

예에서 switch 문에 i 또는 myConstant을 전달할 필요가 없습니다. 이러한 변수는 switch 바로 위에 선언되며 switch 문 안의 모든 코드에서 액세스 할 수 있습니다.

for (var i:int = 0, i < someNumber; i++) 
{ 
    switch (true) 
    { 
     case i == 0: 
      function1(); 
      break; 
     case i % myConstant == 0: 
      function2(); 
      break; 
     default: 
      function3(); 
    } 
} 
+0

완벽한 :

은 아마 당신이 뭔가를 원한다! 가르쳐 줘서 고마워. – okayGraphics

관련 문제