在函数中切换do..while循环的最佳方法是什么?

时间:2014-05-30 22:21:59

标签: c loops gcc do-while

这仅适用于C语言,仍在学习......

假设我们在这里有一些包含2个do..while循环的函数代码:

int loops()
{
    do //Execute this loop first then never again (instead, use second loop)
    {
        /*do something*/
    } while(condition);

    do
    {
        /*do something*/
    } while(condition);

    return;
}

第一次运行时运行第一个do..while循环的最佳方法是什么?当我们回到此函数时,始终运行 second {{ 1}}循环?

1 个答案:

答案 0 :(得分:4)

您可以使用功能参数

int loops (int loopNumber) {...}

2个不同的功能

如果你想使用相同的功能,我做的方法是声明一个静态变量来检查该功能是否先前被调用过:

int loops()
{
    static int var = 0;
    int returnVal = 0;

    if (!var) {
        do //Execute this loop first then never again (instead, use second loop)
        {
            /*do something*/
        } while(condition);
        var = 1;
    } else {
        do
        {
            /*do something*/
        } while(condition);
    }

    return returnVal;
}

您也可以使用全局变量来执行此操作,并且代码变化很小:

int var = 0;

int loops()
{
    int returnVal = 0;

    if (!var) {
        do //Execute this loop first then never again (instead, use second loop)
        {
            /*do something*/
        } while(condition);
        var = 1;
    } else {
        do
        {
            /*do something*/
        } while(condition);
    }

    return returnVal;
}