2012-11-26 54 views
0

內我有很長的代碼此線和我想知道如果這個代碼可以從該開關另一開關動作3

if(BtnInteracted == "New"){ 
     if(sample_1.SaveSlotNumber == "1"){ 
      if(){ 

      } 
      else{ 

      } 
     } 
     else if(sample_1.SaveSlotNumber == "2"){ 
      if(){ 

      } 
      else{ 

      } 
     } 
     else if(sample_1.SaveSlotNumber == "3"){ 
      if(){ 

      } 
      else{ 

      } 
     } 
    } 


    else if (BtnInteracted == "Con"){ 
     if(sample_1.SaveSlotNumber == "1"){ 
      if(){ 

      } 
      else{ 

      } 
     } 
     else if(sample_1.SaveSlotNumber == "2"){ 
      if(){ 

      } 
      else{ 

      } 
     } 
     else if(sample_1.SaveSlotNumber == "3"){ 
      if(){ 

      } 
      else{ 

      } 
     } 
    } 

此被轉換。

switch(BtnInteracted){ 
    case "New": switch (sample_1.SaveSlotNumber){ 
        case "1": //if() else() statement; 
        case "2": //if() else() statement; 
        case "3": //if() else() statement; 
       } break; 

    case "Con": switch (sample_1.SaveSlotNumber){ 
        case "1": //if() else() statement; 
        case "2": //if() else() statement; 
        case "3": //if() else() statement; 
       } break; 
} 

它甚至有可能使這個代碼或我的原始是我唯一的選擇嗎? 感謝您的回覆!

+1

它會正常工作 - 只需放下;第二組開關中的語句。此外,有一個默認值:也可能不是個壞主意 – Gone3d

回答

3

您必須注意break聲明,但它會起作用。你可以嵌套開關,但我個人不認爲內部開關更具可讀性;我更喜歡傳球的東西功能:

switch(BtnInteracted) 
{ 
    case "New": 
    { 
     startFrom(sample_1.SaveSlotNumber); 
     break; 
    } 
    case "Con": 
    { 
     continueFrom(sample_1.SaveSlotNumber); 
     break; 
    } 
} 

然後在按鈕

function startFrom(index:int):void 
{ 
    trace("start from ", index); 
    switch(index) 
    { 
    case 1: 
    { 
     // do something 
     break; 
    } 
    case 2: 
    { 
     // do something 
     break; 
    } 
    } 
} 

function continueFrom(index:int):void 
{ 
    trace("continue from", index); 
    switch(index) 
    { 
    case 1: 
    { 
     // do something 
     break; 
    } 
    case 2: 
    { 
     // do something 
     break; 
    } 
    } 
} 

使用一個新的交換機在很多情況下,你會多次需要的功能與其他輸入,所以你不要有你重複自己,並保持清楚案件會發生什麼情況。