我在for
循环的条件下写了0,所以它曾经被执行过,当我写j代替0而j被初始化为0时,for循环甚至没有被执行过一次。它背后的原因是什么?
for(i=0;0;i++)
和
j = 0;
for(i=0;j;i++)
第一个执行一次,但下一个没有执行。
这是Turbo C ++编译器中的一个错误。
答案 0 :(得分:0)
这是一个基本的C问题,你应该能够自己回答。 for
构造中的第二个参数是条件的。如果它的计算结果为true,则循环继续。如果它的计算结果为false,则循环停止。
当您将第二个参数设置为文字0
或设置为零的变量j
时,您将其设置为一个值为逻辑false的值。
答案 1 :(得分:0)
版本: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();
}