我想直接写一个for循环而没有任何变量。有可能吗?
示例:
for (1; 1 <= 4; ++) {
printf ("Loop working\n");
}
预期输出:
Loop working
Loop working
Loop working
Loop working
答案 0 :(得分:2)
您需要一个变量来保持计数,但是您可以将其隐藏。
#include <stdio.h>
#define JOIN(a, b) (a ## b)
// WARNING: don't LOOP in the same line
#define LOOP(n) for (unsigned JOIN(HIDDEN, __LINE__) = 0; JOIN(HIDDEN, __LINE__) < n; JOIN(HIDDEN, __LINE__)++)
int main(void) {
LOOP(4) {
printf("foo");
LOOP(2) printf(" bar");
puts("");
}
return 0;
}
输出
foo bar bar foo bar bar foo bar bar foo bar bar
答案 1 :(得分:-1)
是的,有可能。
for(; ;);
但这将是一个无限循环。添加一个break语句,它将仅运行一次
for(; ; )
break;
或者您可以在循环内使用增量和条件语句
int i = 0;
for(; ;){
printf ("Loop working\n");
++i;
if( i >= 4)
break;
}
答案 2 :(得分:-1)
要终止循环,您需要保持状态,表明您在哪一点。
通常,为此使用循环变量。
您还可以使用递归,在这种情况下,状态的编码方式不同,但仍然需要:
Property