c - 在一些计数后执行下一个 else 语句
问题描述
如果 x <2,我们执行一些代码,否则如果 x>2 重复超过 5 次,那么我们执行另一个代码。这项任务的适当结构是什么?
int counter =0;
int=x;
if (x<2)
doSomething;
else
count++
else if (count>5)
doSomethingElse;
解决方案
如果你想重复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()
.
推荐阅读
- java - 如何将自定义 Java 模块更新为 JRE 映像
- jms - Ballerina JMS 连接池?
- javascript - 在 dialogflow 内联编辑器上部署 google webhook 示例上的事务
- scala - 从 DataBricks / Spark 中的 SELECT 语句调用时,Scala UDF 失败
- regex - 用于检测 mysql 配置更改的正确正则表达式
- uilabel - 带按钮的多行标签
- c - 为什么 printf 不能打印 Jack 和 George 的名字?
- android - 组合两个具有相同观察者类型的 LiveData 对象
- mapbox - 带 LED 的 Mapbox 导航项目
- php - 使用 mod_rewrite 绕过图像、js 和 css 文件的 PHP 框架