首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要将多个函数分组为一个函数

我需要将多个函数分组为一个函数
EN

Stack Overflow用户
提问于 2020-02-22 21:57:30
回答 1查看 40关注 0票数 0

我需要将多个if函数分组到一个具有自定义名称的大函数中。

代码语言:javascript
复制
if (NPC == NPC1)
{
    Attack = NPCAttack1;
}
if (NPC == NPC2)
{
    Attack = NPCAttack2;
}
if (NPC == NPC3)
{
    Attack = NPCAttack3;
}
if (NPC == NPC4)
{
    Attack = NPCAttack4;
}
if (NPC == NPC5)
{
    Attack = NPCAttack5;
}
if (NPC == NPC6)
{
    Attack = NPCAttack6;
}
if (NPC == NPC7)
{
    Attack = NPCAttack7;
}
if (NPC == NPC8)
{
    Attack = NPCAttack8;
}
if (NPC == NPC9)
{
    Attack = NPCAttack9;
}
if (NPC == NPC10)
{
    Attack = NPCAttack10;
}

我希望所有这些都在一个名为AttackFunction的函数中。我该怎么做?

EN

回答 1

Stack Overflow用户

发布于 2020-02-22 22:12:11

首先,让我们用一条switch语句替换所有这些if语句:

代码语言:javascript
复制
switch (NPC) {
    case NPC1:
        Attack = NPCAttack1;
        break;

    case NPC2:
        Attack = NPCAttack2;
        break;

    case NPC3:
        Attack = NPCAttack3;
        break;

    case NPC4:
        Attack = NPCAttack4;
        break;

    case NPC5:
        Attack = NPCAttack5;
        break;

    case NPC6:
        Attack = NPCAttack6;
        break;

    case NPC7:
        Attack = NPCAttack7;
        break;

    case NPC8:
        Attack = NPCAttack8;
        break;

    case NPC9:
        Attack = NPCAttack9;
        break;

    case NPC10:
        Attack = NPCAttack10;
        break;
}

现在,我们可以将此代码注入到一个函数中,该函数接收NPC,并返回所需的攻击类型。

代码语言:javascript
复制
<attack_type> get_attack_type_from_npc(<npc_type> NPC) {
    switch (NPC) {
        case NPC1:
            return NPCAttack1;

        case NPC2:
            return NPCAttack2;

        case NPC3:
            return NPCAttack3;

        case NPC4:
            return NPCAttack4;

        case NPC5:
            return NPCAttack5;

        case NPC6:
            return NPCAttack6;

        case NPC7:
            return NPCAttack7;

        case NPC8:
            return NPCAttack8;

        case NPC9:
            return NPCAttack9;

        case NPC10:
            return NPCAttack10;
    }
    throw std::runtime_error("No attack type found");
}

在你的主要方面:

代码语言:javascript
复制
int main() {
    // ... Declare Attack & NPC ... Set NPC ...
    Attack = get_attack_type_from_npc(NPC);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60352849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档