c# - 不寻常的 for 循环语句

标签 c# c loops

在 C 和 C# 中,此代码片段:

int ii;
for(ii=1;ii<5;ii++);
printf("ii = %d",ii);

打印出ii = 5而这个片段(注意 <= ):

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);

该代码将 ii 设置为 1,然后递增 ii 直到达到 5,而不在 中执行任何操作code>for 循环体,最后打印 ii

如果要打印数字 1 到 4,则应将 printf 调用放在 for 循环体中:

int ii;
for(ii=1;ii<5;ii++) {
    printf("ii = %d",ii);
}

关于c# - 不寻常的 for 循环语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6195699/

相关文章:

c# - 使用 ASP.Net 在单击事件期间多次更新标签文本

c - C++11 中的 async-future 模型或 C# 中的 async-await 有什么好的 C 实现吗?

php - 有没有更简单的方法来执行涉及 mySQL 的 PHP foreach 循环?

loops - 为什么 Clojure 的范围只迭代 32 次?

python - 如何使用 for 循环对一组数据帧运行操作?

c# - 如何使用 SignalR Serverless 处理用户关闭浏览器?

c# - 我如何将通用列表与 foreach 一起使用?

c# - 每秒 SQL 查询

c - 使用数组计算数字的百分比

c - 间接错误的级别