foreach (элемент DataType в элементах)
Этот цикл foreach проясняет, что вы перебираете все элементы DataType, ну да, элементы. Может быть, это делает код немного длиннее, но это не «плохой» код. Для другого цикла for вам нужно проверить внутри скобок, чтобы иметь представление о том, что этот цикл используется.
Проблема этого примера заключается в том, что вы перебираете два разных массива в одно и то же время, что мы делаем не часто ... поэтому мы застряли между двумя стратегиями ... либо мы немного взломали «Причудливый, как вы это называете, или мы вернемся к старому, а не так любимому (int i = 0; i ...). (Есть и другие способы, кроме этих 2, конечно)
Итак, я думаю, что в Vim vs Emacs возвращаются ваши вопросы в цикле For vs Foreach :) Люди, которым нравится for (), скажут, что этот foreach бесполезен, может привести к проблемам с производительностью и просто огромен. Люди, которые предпочитают foreach, скажут что-то вроде: нам не важно, есть ли две дополнительные строки, если мы сможем прочитать код и легко его обслуживать.
Наконец, первый пример i находится вне области видимости, второй - внутри ... причины тому ?! Потому что, если вы используете I вне вашего foreach, я бы назвал по-другому. И, на мой взгляд, я предпочитаю пути foreach, потому что вы сразу видите, что происходит. Вам также не нужно думать о том, является ли это <или =. Вы сразу же знаете, что перебираете весь список, однако, к сожалению, люди забудут о i ++ в конце: D Итак, я говорю Vim! </p>