algorithm - 在没有循环或 if 语句的情况下执行循环 x 次

标签 algorithm loops goto

我如何重写以下程序才能不使用任何循环和分支结构? (没有 if、while、break、continue、switch、...)

for(int i=0; i < 5; i++){
  // do stuff
}

我能想到的唯一方法是使用丑陋的 goto 语句:

loop:
  // do stuff
  goto loop;

但是我怎样才能在刚好运行 5 次后退出这个循环呢?或者有什么不同的方法吗?

编辑:解决方案不应该是递归的。类(class)中尚不允许调用函数。

最佳答案

您可以使用递归函数并将参数作为计数器传递。
每次调用前减少计数器。

int func(int a,int counter)
{
  int c;


  // .. your logic
  return counter==0?a:func(a,counter-1);      

}

这行 return counter==0?a:func(a,counter-1); 帮助您处理 counter==0 时的情况,而无需使用 if。

关于algorithm - 在没有循环或 if 语句的情况下执行循环 x 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29816712/

相关文章:

algorithm - 哪种数据结构有效地支持给定的操作

algorithm - 反馈和 HRRN 调度算法?

c - 为什么while循环会清除一个变量?

powershell - 检查字符串是否在字符串列表中

sql - 区分句子中的单词

javascript - 推断组序列的算法名称

loops - WSO2 ESB foreach 函数

c - 如何跳转到返回值的宏/函数内的标签

使用 goto 语句对 C++ block 进行 Python 化处理

c - goto 的可接受用途是什么?