Рассмотрим следующие два способа написания цикла в Java, чтобы увидеть, содержит ли список заданное значение:
Стиль 1
boolean found = false;
for(int i = 0; i < list.length && !found; i++)
{
if(list[i] == testVal)
found = true;
}
Стиль 2
boolean found = false;
for(int i = 0; i < list.length && !found; i++)
{
found = (list[i] == testVal);
}
Они эквивалентны, но я всегда использую стиль 1, потому что 1) я нахожу его более читабельным, и 2) я предполагаю, что переназначение found
на false
сотни раз кажется, что это займет больше времени. Мне интересно: верно ли это второе предположение?
Угол Нитпикера
- Мне хорошо известно, что это случай преждевременной оптимизации. Это не значит, что это не то, что полезно знать.
- Мне все равно, какой стиль вы считаете более читабельным. Меня интересует только то, имеет ли одно снижение производительности по сравнению с другим.
- Я знаю, что у стиля 1 есть преимущество, позволяющее вам также помещать оператор
break;
в блок if
, но мне все равно. Опять же, этот вопрос касается производительности, а не стиля.