|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
А если длину массива считать до начала цикла, то и разницы никакой не будет. |
|
|||||
Регистрация: Feb 2013
Сообщений: 176
|
Цитата:
как можно не застать асм, если мы все сидим за компами. обратный цикл в асме был быстрее по такой простой причине, что операция вычитания выставляла в регистре флаг нуля, и операция сравнения перед условным переходом не требовалась, что экономило несколько тактов. Регистровой модели я в AVM не нашел. кините ссылку? Более того, (для AVM) в цикле for (поскольку его можно просто и понятно оптимизировать) инкремент\декремент происходит без помещения переменной в стек, а в while приходиться изымать переменную, уменьшать её, помещать обратно, снова изымать и производить сравнение. Время выполнения операций я не нашел, но по факту в тестах for лидировал. ЗЫ. Тоже считаю странным сравнивать программеров по циклам. Ещё бы количество точек в тексте считали. |
|
|||||
Цитата:
Цитата:
Добавлено через 3 минуты К стати, так и не увидел ни одного примера, когда нельзя заменить цикл for на while |
|
|||||
Цитата:
Это не замена: например мне нужно перебрать массив именно с начала, но не с первого а n-го элемента, то по количеству строк while уже проигрывает.
__________________
In Code We Trust |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
Например: Конечно, и его можно записать в виде for (надо в теле цикла сбрасывать переменную в ноль), но наглядность потеряется да и с точки зрения логики странновато. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Что тут странного?
Добавлено через 12 минут Можно же вообще без инкремента обойтись
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
А только мне кажется такой цикл абсурдным?
Нет, можно и вот так: Какими-то костылями попахивает? |
|
|||||
Цитата:
Цитата:
Если вернуться к исходному вопросу: Цитата:
Вобщем, зря Вы переключились на один вид цикла - лучше и то и другое использовать. Кое-где видел, что пишут for (; condition; ) {...} вместо while - видимо под лозунгом "Безобразно - зато однообразно". Тенденции отказываться от for я не замечал - от этого нет никаких выгод (Николя только отличился, и никому это не нравится). Большинство использует и for и while - по ситуации. Последний раз редактировалось expl; 11.03.2013 в 00:38. |
|
|||||
На счет отвыкания - это правда, через это я прошел самостоятельно, хотя и небыло большой проблемы в этом. А вот про BASIC я ни словом не заикнулся. Лично я к ниму отношусь "не очень". Еще в школьные времена, после ознакомления с Turbo Pascal, я решил посмотреть на BASIC и ужаснулся
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Вот и вся разница.
__________________
Reality.getBounds(this); |
Часовой пояс GMT +4, время: 13:49. |
|
« Предыдущая тема | Следующая тема » |
|
|