Это пример оптимизации кода.Компиляторы языков более высокого уровня автоматически добавят эту оптимизацию и другие подобные.Я недостаточно знаком с компиляцией C, чтобы сказать, добавляют ли они эту оптимизацию автоматически.Я рекомендую изучить конкретный компилятор, который вы использовали, чтобы выяснить, так ли это.
Было бы любезно, если бы ваш профессор отметил, почему этот подход был так важен для него.Я могу вам сказать, что он не является идиоматическим для языков, таких как Java, и делает ваш код менее читабельным, поэтому я рекомендую против этой практики, если вы не сможете продемонстрировать явное преимущество.Он, вероятно, пытался научить вас делать это по умолчанию, потому что некоторые языки более низкого уровня не будут обрабатывать это автоматически, и получение подсчета может быть дорогостоящим, если вы скажете, что по какой-то причине вам нужно получить подсчет из API или базы данных.
Редактировать: Компас в комментариях делает отличную точку.Если у вас есть привычка изменять список, в котором вы находитесь, внутри тела вашего цикла, у вас будет плохое время, если вы не назначите терминатор цикла заранее.Обычно это не очень хорошая идея - изменять размер списка внутри цикла, который все равно зависит от этого списка.