В каких ситуациях я должен использовать «циклы while» вместо «для циклов» в JavaScript? - PullRequest
1 голос
/ 13 ноября 2011

Я всегда был в замешательстве, когда выбирал цикл for и while.В каких ситуациях я должен использовать «циклы while» вместо «для циклов» в JavaScript?Это имеет значение?

Ответы [ 4 ]

5 голосов
/ 13 ноября 2011

В терминах «что работает» они взаимозаменяемы.

С точки зрения передового опыта и соглашений, циклы предназначены для известного числа итераций, а циклы должны выполняться до тех пор, пока они не будут выполненысделано.

2 голосов
/ 13 ноября 2011

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

1 голос
/ 15 июля 2015

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

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

Скажем, например, вы хотели продолжать выбирать игральные карты из колода, пока не получите лопату. Вы не знаете, сколько карт вам понадобится выбрать, поэтому цикл for не будет работать. В таких ситуациях, где это Вы не знаете заранее, когда прекратить зацикливание, мы можем использовать некоторое время цикл. * * один тысяча двадцать шесть

Предоставлено: codecademy.com

1 голос
/ 13 ноября 2011

(Это скоро будет закрыто как слишком субъективное или перенесено на другой форум, но в любом случае ...)

Очевидно, что любой цикл for можно легко переписать, используя "while".Но с учетом синтаксиса:

for ([initialization]; [condition]; [final-expression])

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

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

Конечно, вы можете помещать несколько операторов в инициализацию цикла for или final-выражение, разделяя их запятыми, но если это что-то более сложное, чем i++, j++, k--, это быстро становится слишком грязным для моеговкус и цикл времени были бы лучшим выбором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...