C++ 如何编写没有变量的for循环?

C++ 如何编写没有变量的for循环?,c++,c,for-loop,increment,C++,C,For Loop,Increment,我想直接写一个for循环,没有任何变量。可能吗 例如: for (1; 1 <= 4; ++) { printf ("Loop working\n"); } 是的,这是可能的 for(; ;); 但这将是一个无限循环。添加一个break语句,它将只运行一次 for(; ; ) break; 也可以在循环中使用增量语句和条件语句 int i = 0; for(; ;){ printf ("Loop working\n"); ++i; if( i &

我想直接写一个for循环,没有任何变量。可能吗

例如:

for (1; 1 <= 4; ++) {
  printf ("Loop working\n");
}
是的,这是可能的

for(; ;);
但这将是一个无限循环。添加一个break语句,它将只运行一次

for(; ; )
    break;
也可以在循环中使用增量语句和条件语句

int i = 0;

for(; ;){
    printf ("Loop working\n");
    ++i;
    if( i >= 4)
        break;
}

要使循环终止,您需要保持状态,说明您在哪一点

通常,使用循环变量进行此操作

您也可以使用递归,在这种情况下,状态编码不同,但仍然需要:

void循环(int i)
{
if(i<4){
printf(“循环工作”);
循环(++i);//递归调用
}
}
int main()
{
环(0);
}

您需要一个变量来保持计数,但您可以隐藏它

#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;
}
#包括
#定义联接(a,b)(a##b)
//警告:不要在同一行中循环
#定义循环(n)(无符号联接(隐藏,线)=0;联接(隐藏,线)<n;联接(隐藏,线)++)
内部主(空){
环路(4){
printf(“foo”);
回路(2)打印F(“条”);
认沽权(“”);
}
返回0;
}

输出

foo bar bar foo bar bar foo bar bar foo bar bar 福巴酒吧 福巴酒吧 福巴酒吧
foo bar可能重复了为什么有人想这么做?除非初始化,否则它将是一个无限循环。当你想让它迭代4次时,让它知道是这样的。你需要一个变量来保持迭代计数。如果没有计数,你只能得到一个无限循环。你到底想解决什么问题?这可能是一个@wedapasi——这意味着“做四次”,而不必为循环控制变量命名,也许也不会让某些编译器编写者分心,因为他们抱怨您创建了一个从未使用过的变量;如果OP希望在没有编译器的情况下编译程序,该怎么办?@Biswajit如果只想循环4次,应该在问题中指定它。@Biswajit“如何递增?”递增什么?你没有变量@Biswajit否,您没有指定。您提出了一个非常普通的问题,并提供了一个迭代4次的示例。 foo bar bar foo bar bar foo bar bar foo bar bar