(Это скоро будет закрыто как слишком субъективное или перенесено на другой форум, но в любом случае ...)
Очевидно, что любой цикл for можно легко переписать, используя "while".Но с учетом синтаксиса:
for ([initialization]; [condition]; [final-expression])
, который используется циклом for, он, очевидно, очень хорошо подходит для ситуаций, где есть некоторая простая инициализация и простое обновление конца итерации или приращение счетчика.Размещение всей логики управления циклом прямо в операторе открытия цикла позволяет легко увидеть, что делает цикл тикающим.
С циклом while обработка конца итерации обычно должна выполняться внижней части тела цикла, так что с первого взгляда труднее увидеть, как работает цикл, но также это гораздо больше подходит для ситуации, когда вам нужно выполнить ряд вычислений, чтобы решить, следует ли продолжать цикл.
Конечно, вы можете помещать несколько операторов в инициализацию цикла for или final-выражение, разделяя их запятыми, но если это что-то более сложное, чем i++, j++, k--
, это быстро становится слишком грязным для моеговкус и цикл времени были бы лучшим выбором.