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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Зачем в С++ три оператора цикла? while,for,do 
:(
    Опции темы
ZZZkoderZZZ
Дата 11.3.2013, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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




Если для написания программ достаточно одного? 
PM MAIL   Вверх
fish9370
Дата 11.3.2013, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва




тебе нужно открыть какую-то книжку для начинающих и найти такие разделы:

- цикл с параметром
- цекл с предусловием
- цикл с постусловием

у них немного разные свойства


--------------------
undefined
PM MAIL WWW ICQ   Вверх
Фантом
Дата 11.3.2013, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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




Цитата(ZZZkoderZZZ @  11.3.2013,  13:54 Найти цитируемый пост)
Если для написания программ достаточно одного?


Для написания программ и одного не нужно. Условие и goto позволят обеспечить то же самое. Впрочем, и C++ не нужен - можно сразу в кодах писать...

А если серьезно: с чего Вы взяли, что комплект языковых средств должен быть минимальным?
PM   Вверх
ZZZkoderZZZ
Дата 11.3.2013, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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




Цитата(Фантом @ 11.3.2013,  14:13)
Для написания программ и одного не нужно. Условие и goto позволят обеспечить то же самое. 

goto не признается многими программистами, поэтому один цикл не помешает.
PM MAIL   Вверх
fish9370
Дата 11.3.2013, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва




Цитата(ZZZkoderZZZ @  11.3.2013,  14:16 Найти цитируемый пост)
goto не признается многими программистами, поэтому один цикл не помешает


я признаю,  smile 


--------------------
undefined
PM MAIL WWW ICQ   Вверх
ZZZkoderZZZ
Дата 11.3.2013, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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




Цитата(fish9370 @ 11.3.2013,  14:12)
у них немного разные свойства

Тем не менее можно реализовать любой оператор цикла только одним из этих трех операторов цикла, или вообще на goto, как уже сказали.
PM MAIL   Вверх
sQu1rr
Дата 11.3.2013, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




Цитата(ZZZkoderZZZ @  11.3.2013,  14:16 Найти цитируемый пост)
goto не признается многими программистами, поэтому один цикл не помешает. 

У некоторых людей есть талант выдирать части предложения уничтожая смысл сказанного smile
PM MAIL Skype GTalk   Вверх
fish9370
Дата 11.3.2013, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва




Цитата(ZZZkoderZZZ @  11.3.2013,  14:19 Найти цитируемый пост)
Тем не менее можно реализовать любой оператор цикла только одним из этих трех операторов цикла, или вообще на goto, как уже сказали.


это как ты организуешь мне цикл с постусловием с помощью for без дополнительных операторов?


--------------------
undefined
PM MAIL WWW ICQ   Вверх
ZZZkoderZZZ
Дата 11.3.2013, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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




Цитата(Фантом @ 11.3.2013,  14:13)
А если серьезно: с чего Вы взяли, что комплект языковых средств должен быть минимальным?

Может быть и не должен. 
Неплохо бы добавить 4-й вид цикла
Код

for i in 1..100
- было бы удобнее.

Добавлено через 3 минуты и 25 секунд
Цитата(fish9370 @ 11.3.2013,  14:23)
это как ты организуешь мне цикл с постусловием с помощью for без дополнительных операторов?

без никак, а с доп. операторами можно.
PM MAIL   Вверх
fish9370
Дата 11.3.2013, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва




Цитата(ZZZkoderZZZ @  11.3.2013,  14:24 Найти цитируемый пост)
было бы удобнее


ты издеваешься? языков с подобным синтаксисом пруд пруди, ты можешь и свой написать.. ты разделом не ошибся?  smile 


--------------------
undefined
PM MAIL WWW ICQ   Вверх
Dem_max
Дата 11.3.2013, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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




Код

int my_array[5] = {1, 2, 3, 4, 5};
for(int &x : my_array)
{
  x *= 2;
}


не ???


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Фантом
Дата 11.3.2013, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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




Цитата(ZZZkoderZZZ @  11.3.2013,  15:24 Найти цитируемый пост)

Неплохо бы добавить 4-й вид цикла


В современном C++ он есть.
PM   Вверх
ZZZkoderZZZ
Дата 11.3.2013, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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




Цитата(fish9370 @ 11.3.2013,  14:31)
ты издеваешься? языков с подобным синтаксисом пруд пруди, ты можешь и свой написать.. ты разделом не ошибся?  smile

Я и говорю, что везде это есть, а в С++ нет.

Добавлено через 2 минуты и 22 секунды
Цитата(Dem_max @ 11.3.2013,  14:38)
Код

int my_array[5] = {1, 2, 3, 4, 5};
for(int &x : my_array)
{
  x *= 2;
}


не ???

У меня такое не работает
PM MAIL   Вверх
fish9370
Дата 11.3.2013, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва




а ты с какой целью интересуешься?  smile

тебе надо писать в комитет архитекторов языка, я думаю там признают свой язык убогим и тут же добавят эту незаменимую фичу  smile 


--------------------
undefined
PM MAIL WWW ICQ   Вверх
Dem_max
Дата 11.3.2013, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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




Цитата(ZZZkoderZZZ @ 11.3.2013,  15:22)
Цитата(fish9370 @ 11.3.2013,  14:31)
ты издеваешься? языков с подобным синтаксисом пруд пруди, ты можешь и свой написать.. ты разделом не ошибся?  smile

Я и говорю, что везде это есть, а в С++ нет.

Добавлено @ 15:25
Цитата(Dem_max @ 11.3.2013,  14:38)
Код

int my_array[5] = {1, 2, 3, 4, 5};
for(int &x : my_array)
{
  x *= 2;
}


не ???

У меня такое не работает

ТО что у тебя не работает говорит о твоей безграмотности в с++

http://liveworkspace.org/code/1dUKve$5

Это сообщение отредактировал(а) Dem_max - 11.3.2013, 15:40


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
ZZZkoderZZZ
Дата 11.3.2013, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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




Цитата(Dem_max @ 11.3.2013,  15:32)
ТО что у тебя не работает говорит о твоей безграмотности в с++

http://liveworkspace.org/code/1dUKve$5

Это говорит о том, что у меня студия не последней версии.
PM MAIL   Вверх
kosmonaFFFt
Дата 11.3.2013, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




А у меня вообще студии нету, но тоже работает...
Никто не заставляет вас пользоваться устаревшими инструментами...

З.Ы. А еще помимо циклов в С++ есть stl algorithms, они по вашему тоже не нужны?


--------------------
user posted image
PM MAIL ICQ   Вверх
ZZZkoderZZZ
Дата 11.3.2013, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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




Цитата(Dem_max @ 11.3.2013,  14:38)
Код

int my_array[5] = {1, 2, 3, 4, 5};
for(int &x : my_array)
{
  x *= 2;
}


не ???

И как удобнее

Код

for i in 1..10000
        my_array[i]*=2;


или сначала объявить массив, заполнить его от 1 до 10000 (для этого придётся написать еще один отдельный цикл), и только после этого запустить цикл, пусть даже так.
Код

for(int &x : my_array)
{
  x *= 2;
}
 
Даже обычный C-шный цикл удобнее.

В >90% случаев все циклы это циклы от a до b с шагом 1. И в С++ не предусмотрели для этого специальный оператор. 

Если оставить один оператор цикла намного хуже не станет.
PM MAIL   Вверх
sQu1rr
Дата 11.3.2013, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




Если при разработке С++ разработчики стали бы заморачиваться на такие глупости как отдельный цикл для частного случаю for и наклепали бы 100 разных циклов, то разные неопытные троли стали бы флудить в форуме вопросами, нельзя ли было это все в один цикл объеденить: зачем 100?
PM MAIL Skype GTalk   Вверх
bsa
Дата 11.3.2013, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия




Цитата(ZZZkoderZZZ @  11.3.2013,  17:39 Найти цитируемый пост)
И как удобнее

Код
for(int i = 1; i <= 10000; ++i)
Оператор for(;;) в С/С++ один из самых мощных.

Добавлено через 6 минут и 47 секунд
Цитата(ZZZkoderZZZ @  11.3.2013,  17:39 Найти цитируемый пост)
или сначала объявить массив, заполнить его от 1 до 10000 (для этого придётся написать еще один отдельный цикл), и только после этого запустить цикл, пусть даже так.
ты в своих примерах определение и инициализацию массивов опускал. оператор for(auto &x : my_array) выполняется для всех элементов массива, при этом в теле цикла x ссылается на текущий элемент. В итоге, это абсолютно тоже самое, что и в примере на Perl.
PM   Вверх
baldina
Дата 12.3.2013, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва




ZZZkoderZZZ, зачем разные ложки/вилки/щипцы для омаров? достаточно алюминиевой ложки, доставаемой из голенища. а можно и вообще руками есть.

PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила раздела «Флейм»
Sneg0k

Добро пожаловать в «Флейм».

В разделе не действуют многие правила:

  • Можно оффтопить(умеренно)
  • Можно общаться на темы, не только связанные с программированием.

Строго запрещено:

  • Размещать рекламу
  • Обсуждать политику
  • Оскорблять друг-друга и переходить на личности
  • Наезжать, провоцировать других участников форума
  • Материться
  • Троллить

Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт.


Глас Винграда:


Глас Философии:


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

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


 




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


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

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