Turbo C++ 错误地执行条件为 0 的循环

Turbo C++ erroneously executes loop with literal 0 in condition

我在for循环的条件中写了0所以它执行了一次,当我写j而不是0并且j被初始化为0时for循环甚至没有执行一次。背后的原因是什么?

for(i=0;0;i++) 

j = 0;
for(i=0;j;i++) 

第一个执行了一次,下一个没有执行

编辑:

这是 Turbo C++ 编译器中的错误。

这是一个基本的 C 问题,您应该能够自己回答。 for 结构中的第二个参数是条件参数。如果它的计算结果为真,则循环继续。如果计算结果为 false,则循环停止。

当您将第二个参数设置为文字 0 或设置为零的变量 j 时,您将其设置为计算结果为逻辑假的值。

这是 Turbo c++ 中的错误

版本:3.2.2.0

Github as an Issue 上报告了以下问题:


以下gif将提供错误解释。 gif of execution of the above

再生代码

void main()
{
   int i,j=0;
   clrscr();
   for(i = 0; 0 ; i++) // you could try replacing 0 with variable j
      printf("\nHello");
   getch();
}