首页 > 解决方案 > 在一些计数后执行下一个 else 语句

问题描述

如果 x <2,我们执行一些代码,否则如果 x>2 重复超过 5 次,那么我们执行另一个代码。这项任务的适当结构是什么?

int counter =0;
int=x;
if (x<2)
       doSomething;
else 
      count++
else if (count>5)
      doSomethingElse;

标签: cif-statement

解决方案


如果你想重复something()n次,那么做something_else(),那么最好是

#include <stdio.h>
#include <stdlib.h>

#define WHERE_I_AM()     do{ printf("in %s\n", __func__);} while(0)

void do_something()
{
        WHERE_I_AM();
}

void do_something_else()
{
        WHERE_I_AM();
}

int main()
{
        int n_times = 5;

        while(n_times--)
                do_something();
        do_something_else();

        exit(EXIT_SUCCESS);
}

遇到

$ pru
in do_something
in do_something
in do_something
in do_something
in do_something
in do_something_else
$ _

如果你想像你说的那样做,下else一部分在指定的次数后执行,首先你必须弄清楚你要执行多少次循环。如果您发布一个完整的示例会更好,如如何创建最小、完整和可验证示例 中所述假设您处于一个for将执行 20 次的循环中......并且在第五次之后您希望它执行不同的功能。

如果您通过以下方式更改上面的代码:

[...]
        int n_times_first = 5;
        int n_times_total = 20;
        int i;

        for(i = 0; i < n_times_total; i++) {
                if (i < n_times_first)
                        do_something();
                else
                        do_something_else();
        }

        exit(EXIT_SUCCESS);
[...]

但这次你会得到 5 次处决do_something()和 15 次以上的do_something_else().


推荐阅读