关于.net:“for(;;)”在C#中做什么?

What does “for(;;)” do in C#?

我偶尔在我读过的书中看到过。但我没有找到任何解释。

1
2
3
4
for (;;)
{
  // Do some stuff.
}

它有点像"while(true)"吗?基本上是一个无休止的投票循环还是什么?基本上你会做些什么直到你故意打破这个循环?


Is it kind of like"while(true)"?

对。它永远循环。

还要注意安德鲁·科尔森的评论:

Languages like C don't have built-in boolean primitives, so some people prefer for(;;) over while(1)


对。

在for中,如果没有提供任何内容:

  • 初始化不起作用。
  • 条件总是正确的
  • count语句不起作用

它相当于while(true)。


你是对的。这是一个常见的C习语,用于无限循环。


对的。请注意,for循环的大括号包含三个部分:

  • 初始化代码
  • 继续循环的条件
  • 为每个循环迭代执行的东西
  • 使用for(;;)时,所有这些都是空的,因此没有执行任何初始化循环的操作,也没有保持循环运行的条件(即它将无限期运行),也没有为每个迭代执行任何操作,除了循环的内容。


    是的,它是一个无限循环。


    如果我记得正确的话,它是在"while(true)"之上使用的,它更像"for(;;)//ever"吗?


    是的,它是一个无止境的循环,就像while(对)。

    这是一个略受欢迎的惯例,可能是因为它较短。根本没有效率差异。


    永远循环。


    看看for循环。

    1
    for ( initialization ; condition ; increment  )

    1)初始化-在此设置计数器变量
    2)条件-保持循环,直到计数器变量满足条件
    3)递增-递增计数器

    如果没有条件,循环将永远持续下去。如果是这样的话,就不需要计数器了。因此

    1
    for(;;)

    是的,这是一个无限循环。与执行while(true) { ... }相同的想法/效果


    因菲尼特循环喜欢说

    1
    while (0<1)


    准确地说,任何在分号之间没有任何内容的for循环都将永远循环(直到以其他方式终止),因为它没有定义的不变量。


    是的,它永远循环。但你应该使用的原因

    1
    for(;;)

    而不是

    1
    while(true)

    那是

    1
    while(true)

    将给您一个编译器警告"条件表达式常量",而for循环不会。至少你会在最高的警告级别得到这样的编译器警告。


    它没有结束条件,所以它将永远循环,直到找到一个中断,正如您已经猜到的。


    我还可以补充一点,它看起来像两张笑脸在向你眨眼。

    (;)

    也许这就是为什么有些人喜欢用它。


    对!.


    通常用于嵌入式编程。

    -设置中断和计时器。-然后永远循环。

    当中断或计时器发生时,将被处理。