c++ - 不使用 for、while 或 goto 的循环

标签 c++ c loops

在 Windows 中,可以使用 C 中的结构化异常处理来编写一个伪循环,打印从 1 到 1000 的所有数字,如下所示:

int n = 0;
__try {
    *(int *)0 = 0;
}
__except(printf("%i\n", ++n), n < 1000 ? -1 : 1) {
}

我想知道 C/C++ 中是否还有其他方法来创建一个循环,如果您在代码中搜索常见的可疑关键字 for,那么该循环对于检测起来并不简单。 , whilegoto .

最佳答案

在 C++ 中,一个简单的 lambda 就可以做到这一点:

std::function<void(int,int)> print = [&](int from, int to)
{
    std::cout << from << " ";
    if ( from < to ) print(++from, to);
};

print(1, 1000);

它将打印从 11000 的所有整数。并且它不使用 forwhilegoto

关于c++ - 不使用 for、while 或 goto 的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14241325/

相关文章:

c - 如何正确提示用户输入,直到他们给出有效响应

C++:函数中的静态变量声明

C++ 将 int 转换为字符数组?

C、gets() 可能很危险。文件中的数据不会出现

c - 与 float 相比,Double 产生奇数输出

r - R 中 if-else 中的逻辑运算符

c++ - 将 auto_ptr<> 与数组一起使用

C++ 打破另一个函数的循环

linux - 创建 bash 脚本以 ssh 到不同的系统并运行命令

R 通过列嵌套映射