这是循环,不是循环,还是循环而不是循环?如果你计算一个程序中的循环次数,你会算这个吗?
do {
...
}while(0);
我很好奇,因为我和一个有项目的人一起工作,要求他计算一个程序中的循环次数。
答案 0 :(得分:7)
在C标准C11
,章节§6.8.5,迭代语句中,列出了
迭代语句:
while (
表达) statement
do
声明while (
表达) ;
for (
表达式 opt ; 表达 opt ; 表达 opt) statement
for (
声明表达式 opt ; 表达 opt) statement
提到了do statement while ( expression ) ;
,所以是,它是一个循环(迭代)语句,无论它在特定实现中所做的迭代次数 /使用。
FWIW,这循环一次。
要添加更多说明,quoting from Wikipedia,(强调我的)
循环是一系列语句,指定一次但可能 连续执行多次。循环内部的代码(循环体,下面显示为xxx)遵循指定的次数,或者对于每个项目集合一次,或直到满足某些条件 ,或无限期地。
答案 1 :(得分:2)
从某种意义上说,是的,它是一个循环,但实际上没有。它在技术上是一个循环,因为你使用循环语法,但你实际上只是在你的“循环”中运行一次代码,然后破坏。我不会把它当作一个循环,因为你没有在你的程序中添加任何算法运行时,所以没有必要把它算作循环。注意:不要这样做,这是毫无意义和糟糕的编码实践。
编辑:在下面的评论中对Jeremy的信用,至少有一种情况,这种结构在C中有用:do { ... } while (0) — what is it good for?
答案 2 :(得分:0)
do {
...
}while(k);
现在,迭代次数取决于k
的值,现在只有当k!=0
或k
为True
时,您才能说它是一个循环。< / p>
所以它基本上是一个循环。