0

我有这行代码很长,我想知道这些代码是否可以从中转换

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;
}

甚至可以制作此代码还是我的原始代码是我唯一的选择?感谢您的回复!

4

1 回答 1

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;
    }
  }
}

在很多情况下,您需要多次使用该功能和其他输入,这样您就不必重复自己,并且清楚地知道特定情况下会发生什么。

于 2012-11-26T21:52:28.550 回答