Что делает “для (; ;)”, в C#?

Захват мыши. Когда объект захватывает мышь, все связанные с мышью события обрабатываются так, как будто объект с захватом мыши выполняет событие, даже если указатель мыши находится над другим объектом.

17
задан Peter Mortensen 28 December 2009 в 16:31
поделиться

17 ответов

Это что-то вроде «while (true)»?

Да. Он зацикливается вечно.


Также обратите внимание на комментарий Эндрю Колесона:

Языки, подобные C, не имеют встроенных логических примитивов, поэтому некоторые люди предпочитают for (;;) вместо while (1)

49
ответ дан 30 November 2019 в 09:56
поделиться

Да, цикл повторяется вечно. Но причина, по которой вы должны использовать

for(;;)

вместо

while(true)

, заключается в том, что

while(true)

выдает предупреждение компилятора « константа условного выражения », в то время как цикл for этого не делает. По крайней мере, вы получите такое предупреждение компилятора на самом высоком уровне предупреждений.

4
ответ дан 30 November 2019 в 09:56
поделиться

Часто используется во встроенном программировании.

-настройка прерываний и таймеров. -затем цикл навсегда.

Когда происходит прерывание или таймер, который будет обработан.

1
ответ дан 30 November 2019 в 09:56
поделиться

Да! .

2
ответ дан 30 November 2019 в 09:56
поделиться

Я мог бы также добавить, что это выглядит как 2 смайлика, подмигивающие вам

для (;;)

, может быть, поэтому некоторым людям нравится его использовать.

4
ответ дан 30 November 2019 в 09:56
поделиться

У него нет конечного условия, поэтому он будет повторяться бесконечно, пока не найдет разрыв, как вы уже догадались.

4
ответ дан 30 November 2019 в 09:56
поделиться

Если быть точным, любой цикл for без чего-либо между точками с запятой будет повторяться вечно (до тех пор, пока не будет завершен каким-либо другим способом), потому что у него нет определенного инварианта.

6
ответ дан 30 November 2019 в 09:56
поделиться

Если я правильно помню, это используется вместо "while (true)", это больше похоже на "for (;;) // ever"

11
ответ дан 30 November 2019 в 09:56
поделиться

Бесконечный цикл как сказать

while (0<1)
8
ответ дан 30 November 2019 в 09:56
поделиться

Да, это бесконечный цикл, как и while (true).

Это несколько предпочтительное соглашение, вероятно, потому, что оно короче. Нет никакой разницы в эффективности.

10
ответ дан 30 November 2019 в 09:56
поделиться

Цикл навсегда.

9
ответ дан 30 November 2019 в 09:56
поделиться

Да, это бесконечный цикл. Та же идея / эффект, что и выполнение while (true) {...}

8
ответ дан 30 November 2019 в 09:56
поделиться

Да, это бесконечный цикл.

12
ответ дан 30 November 2019 в 09:56
поделиться

Верно. Обратите внимание, что фигурные скобки цикла for содержат три части:

  1. Код инициализации
  2. Условие для продолжения цикла
  3. Что-то, что выполняется для каждой итерации цикла

С for (;;) , все они пусты, поэтому для инициализации цикла ничего не делается, нет условий для его продолжения (т.е. он будет работать бесконечно) и ничего, что не выполняется для каждой итерации, кроме содержимого цикла.

13
ответ дан 30 November 2019 в 09:56
поделиться

Вы правы. Это обычная идиома C # для бесконечного цикла.

17
ответ дан 30 November 2019 в 09:56
поделиться

Да.

В for, если ничего не предусмотрено:

  • Инициализация ничего не делает.
  • Условие всегда истинно
  • Оператор count ничего не делает

Это эквивалентно while (true).

20
ответ дан 30 November 2019 в 09:56
поделиться

Взгляните на цикл for.

for ( initialization ; condition ; increment  )

1) инициализация - установите здесь переменную счетчика
2) условие - продолжайте цикл, пока переменная счетчика не будет соответствовать условию
3) инкремент - инкремент счетчика

Если нет условия, цикл будет продолжаться бесконечно. Если это так, то счетчик не нужен. Поэтому

for(;;)
9
ответ дан 30 November 2019 в 09:56
поделиться