0

Какой цикл больше нагружает систему? For или While. Каким циклом пользоваться предпочтительней, часто одну и ту же операцию можно сделать и используя и от и другой

  • 4
    Это не критично для системы. Для компилятора - это примерно один и тот же набор команд. Тут скорее вопрос в логике и читаемости кода. Хотелось бы увидеть фрагмент кода. И тогда можно решить какой цикл предпочтителен для данной конкретной ситуации. – VeLKerr Jul 15 '15 at 17:34
  • 2
    Во-первых, они одинаковы, а во-вторых, джава - это немного не тот язык, для которого имеет смысл спрашивать о подобных вещах. Или имелся в виду foreach? – Qwertiy Jul 15 '15 at 17:42
  • 1
    Кто за закрытие голосовал - почему?? – Qwertiy Jul 15 '15 at 17:42

2 Answers2

11

Вы опоздали с вашим вопросом лет эдак на 30-40.

Сейчас никакой разницы нет, вообще. Компиляторы умные, и если смысл кода по сути один и тот же, обычно производят одинаковый байткод.

Кроме того, даже если бы производительность разных видов циклов и отличалась, расходы времени на управление циклами составляют порядка нескольких наносекунд. «Оптимизация» такого толка вам ничего не принесёт: расходы на запуск приложения (чтение его из файловой системы) на несколько порядков больше.

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

VladD
  • 206,799
3

Сейчас нет особо большой разницы. Для понимания: цикл while (i<10) при компиляции превратится в цикл for (;i<10;).

awesoon
  • 4,179