Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пост (пре) инремент в бестелесном цикле 
V
    Опции темы
hoz
Дата 24.2.2014, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 27.6.2013

Репутация: нет
Всего: нет



 Имеется цикл:
Код

for (i; i<10; sum+= i++)

Я так понимаю, читается оно так:
sum = sum+i;
i = i+1;
Тогда как прочитать выражение?:
Код

for (i; i<10; sum+= ++i)

PM MAIL   Вверх
Фантом
Дата 24.2.2014, 20:39 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 4
Всего: 49



Цитата(hoz @  24.2.2014,  20:03 Найти цитируемый пост)
Тогда как прочитать выражение?:

Соответственно, сначала i = i+1; потом sum = sum+i;

PM   Вверх
hoz
Дата 24.2.2014, 23:04 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 27.6.2013

Репутация: нет
Всего: нет



Цитата(Фантом @  24.2.2014,  20:39 Найти цитируемый пост)
Соответственно, сначала i = i+1; потом sum = sum+i;

Странно, что выражение пишется не так:
Код

for (i; i<10; ++i sum+=)

Было бы читабельнее по логике и визуально.
PM MAIL   Вверх
vinter
Дата 25.2.2014, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 8
Всего: 56



Цитата(hoz @  25.2.2014,  00:04 Найти цитируемый пост)
Было бы читабельнее по логике и визуально.

и по логике и визуально это выглядит как чёрти что.  Первая запись куда понятнее. К sum прибавляется результат выражения ++i. Это результат эквивалентен i+1


--------------------
Мой блог
PM MAIL WWW   Вверх
Фантом
Дата 25.2.2014, 10:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 4
Всего: 49



Цитата(hoz @  25.2.2014,  00:04 Найти цитируемый пост)

Было бы читабельнее по логике и визуально. 

И заодно противоречило бы стандарту языка. Придумывать для каждого частного случая свою "читабельную" конструкцию нерационально.
PM   Вверх
hoz
Дата 25.2.2014, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 27.6.2013

Репутация: нет
Всего: нет



hoz, 
Цитата(vinter @  25.2.2014,  08:12 Найти цитируемый пост)
и по логике и визуально это выглядит как чёрти что.  Первая запись куда понятнее. К sum прибавляется результат выражения ++i. Это результат эквивалентен i+1 

Согласен! Тогда этот код:
Код

for (i; i<10; sum+= i++)

Основываясь на Вашем посте будет читаться так:
" К sum прибавляется результат выражения i++. Это результат эквивалентен i+1 " По сути это тоже самое. В данном случае, пост(пре) инкремент не видится, хотя он есть. Но работает то код не так...
PM MAIL   Вверх
vinter
Дата 25.2.2014, 17:39 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 8
Всего: 56



Цитата(hoz @  25.2.2014,  18:23 Найти цитируемый пост)
Основываясь на Вашем посте будет читаться так:

не так: Это результат эквивалентен i
И я не понимаю, почему ты там не видишь пост-инкремент.
for(init ; condition; after-expression){body;} можно записать через while:
Код

init;
while(condition)
{
    body;
    after-expression;
}

Или твой пример:

Код

for (i; i<10; sum+= i++)


будет
Код

i;
while(i < 10)
{
    sum+= i++;
}


sum+= i++; в свою очередь это:
Код

 sum  = sum + i;
 ++i;

sum += ++i; в свою очередь это:
Код

 sum  = sum + ++i;



--------------------
Мой блог
PM MAIL WWW   Вверх
hoz
Дата 25.2.2014, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 27.6.2013

Репутация: нет
Всего: нет



vinter, теперь понятно, благодарю. Структуры с пре(пост)инкрементом просто нужно воспринимать, как я так понял, как переменную и всё становится логичным.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.