C# 一个不寻常的for循环语句
在C和C中,此代码段:C# 一个不寻常的for循环语句,c#,c,loops,C#,C,Loops,在C和C中,此代码段: int ii; for(ii=1;ii<5;ii++); printf("ii = %d",ii); 打印出ii=6 你能解释一下这是怎么回事吗?为什么for循环以分号结尾?for循环的主体是空的: int ii; for(ii=1;ii<5;ii++); // ↑ body of the for loop printf("ii = %d",ii); 从0迭代到4,每次迭代都不执行任何操作。这是一个空语句,它是分号 这是有意
int ii;
for(ii=1;ii<5;ii++);
printf("ii = %d",ii);
打印出ii=6
你能解释一下这是怎么回事吗?为什么for循环以分号结尾?for循环的主体是空的:
int ii;
for(ii=1;ii<5;ii++);
// ↑ body of the for loop
printf("ii = %d",ii);
从0迭代到4,每次迭代都不执行任何操作。这是一个空语句,它是分号
这是有意义的,例如:
for (i = 0; i < 5; printf ("%d", i++) );
由于for循环的结尾包含一个空语句分号,因此ii的值是导致循环退出的值。因此,当ii记住,循环声明的增量部分发生在循环的末尾,因此输出与预期一样-在第一个示例中,循环在ii变为5后停止。循环体为空,在ii为0到4时执行
第二个循环的空体从0到5执行六次,当ii变为6时停止。删除for后面的分号,当表示不带{}的for循环时,它将在语句后面的循环中执行代码,直到找到一个;在您的例子中,for循环没有找到要执行的语句。删除for和下一行代码后的分号,将执行print语句。对于代码,获得输出6是正确的。以下是流程: 您的“ii”分别增加到5和6,以进行第一个和第二个循环。因为您正在循环for循环,而不需要执行主体
forii=1;它真的是i++还是ii++?你能解释一下你的意思吗:for循环永远不会以分号结束这是一个无效的语句;这是完全正确的。对于也是有效的。我会试试thanxx bro
int ii;
for(ii=1;ii<5;ii++) {
printf("ii = %d",ii);
}
for (i = 0; i < 5; i++);
for (i = 0; i < 5; printf ("%d", i++) );