循环没有for,while或goto

时间:2013-01-09 16:05:32

标签: 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 ++中是否还有其他方法可以创建一个循环,如果您在代码中搜索通常的可疑关键字forwhile和{{ 1}}。

1 个答案:

答案 0 :(得分:2)

在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