c# - for中的多个语句

标签 c# c++

我有这个代码

for(int l = 1 ; l <= c ; l++, Sleep(500*min(l, 8))) //... <= 4000 msec
  {
      ....
  }

这是否等同于此?

for(int l = 1 ; l <= c ; l++) //... <= 4000 msec
  {
      Sleep(500*min(l, 8))
         ....
  }

我想用 C# 重写原始代码。第二种方法是否与我在 C# 中采用的方法相同?

最佳答案

不,它们不等价。 for 循环的停止条件在以下 { } block 中的代码之后执行。

所以等价于

for(int l = 1; l <= c; )
{
    /*loop body*/
    l++, Sleep(500 * min(l, 8));
}

表达式分隔符 (,)可以替换为语句终止符;。由于两者都是排序点,Sleep 接收到 l 的增量值。

关于c# - for中的多个语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35082501/

相关文章:

c# - 使用 LINQ 比较两个数组

c++ - async_connect 上的 boost::asio 完成处理程序在第一次失败后不再调用

c++ - 如何为输入文件构建解析器

c++ - 在每次移动过程中在 Opengl 中制作游戏时形成额外对象

c# - 当对象数量未知时反序列化 Json

c# - 带回调的线程示例不起作用。

c# - Singleton:两全其美(想要实例化类)

c++ - QPixmap 仅适用于绝对路径

c++ - 以 C++ 对象的形式访问 QML 插件代码

c# - 处理WhenAll时,可以优雅地处理异常