#c #for-loop
#c #for-цикл
Вопрос:
Являются ли эти два мира кода эквивалентными?
for(int i=0; i<10; i ){
//some thing
}
и
for(int i=0; i<10; ){
//some thing
}
если они совпадают, какой из них более стандартен для использования?
Комментарии:
1. Вы также можете запустить оба этих цикла и распечатать
i
, посмотреть, выполняет ли он то же самое и выполняет ли одинаковое количество шагов. Я думаю, что этого не произойдет.2. Один из них — стандартный цикл от 0 до 9, другой — от 1 до 9, я полагаю. Проблема заключается в части «я верю». Люди знают, как читать первое, второе непонятно. Вы пишете свой код не только для компилятора, но и для других людей. Придерживайтесь первого стиля, если у вас нет очень веской причины не делать этого.
3. Средняя операция (тест) выполняется перед первым циклом, но последняя часть (приращение) — нет. Итак, они разные.
Ответ №1:
Я бы не стал писать это как for(int i = 0; i < 10; )
, и i
отличается от i
из-за порядка операций. i
увеличивает i
, затем «возвращает» его, i
«возвращает» i
, затем увеличивает его.
Ответ №2:
Нет, это не одно и то же. Вы должны быть осведомлены о работе приращения префикса и приращения постфикса.
Во втором случае, на первой итерации цикла for, переменная ‘i’ будет иметь значение 1, но в первом случае переменная ‘i’ будет иметь значение 0 и так далее.
Поэтому второй цикл будет выполняться только 9 раз, тогда как первый цикл будет выполняться 10 раз
Ответ №3:
Нет, это не одно и то же, но если вы напишете это так :
for(int i=0; i<10; ){ //some_thing i ; }
это то же самое