AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.07.2008, 14:55   #1  
RumataEstor is offline
RumataEstor
очами вижу
 
84 / 19 (1) ++
Регистрация: 29.04.2008
Адрес: Москва
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Можно-то можно, и в С оператор goto использовать никто не запрещает, но правильнее было бы (это моё субъективное мнение) поставить более красивое условие выхода из цикла вместо использования break, который часто ломает логику. Я к тому чтобы использовать break, если уж без него никак, а не лепить где попало.
В тех же "Best Practices" от разработчиков Аксапты пишут, что рекомендуется прерывать блок обработки как можно раньше. И желательно обходиться без лишней лесенки в коде (высокой степени вложенности блоков).
Так что break и continue зачастую позволяют написать более легкий для чтения код. Что лучше:
X++:
for (int i = 0; i < m; ++i)
{
	if (array[i] <= 0) continue;
	
	// do something with array[i]
	// lot's of code
}
// или
for (int i = 0; i < m; ++i)
{
	if (array[i] > 0)
	{
		// do something with array[i]
		// lot's of code
	}
}
Огород в условии цикла совсем не улучшает читаемость кода. А главное помнить, что код для того, чтобы его читать человеку.
Старый 02.07.2008, 15:23   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,719 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от RumataEstor Посмотреть сообщение
В тех же "Best Practices" от разработчиков Аксапты пишут, что рекомендуется прерывать блок обработки как можно раньше. И желательно обходиться без лишней лесенки в коде (высокой степени вложенности блоков).

Так что break и continue зачастую позволяют написать более легкий для чтения код.

(...)

Огород в условии цикла совсем не улучшает читаемость кода. А главное помнить, что код для того, чтобы его читать человеку.
В Ваших словах ключевое значение имеет слово "зачастую"

Для написанния кода (кроме очевидного факта его работоспособности) существуют два основных пожелания:

- Код должен быть "читабельным". Т.е. его можно легко понять
- Код должен быть модифицируемым. Т.е. его можно легко изменить

Так вот, факт прерывания цикла может как улучшить, так и ухудшить обе эти характеристики. В зависимости от конкретной задачи

Поэтому данная рекомендация - эта одна из тех рекомендаций, которую нельзя применять "в лоб". Не обдумав все последствия. Как минимум, она очень спорная.
Старый 02.07.2008, 15:33   #3  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от RumataEstor Посмотреть сообщение
Что лучше:
С моей точки зрения 2. лучше:

- там блок, который пропускается явно отделен отступом
- там нет ифа в строчку без отступа и скобок
- если захочется что-то вставить в конец каждой итерации цикла, то это можно будет сделать не анализируя читая весь код тела цикла выше, нет ли там continue

лично я иногда пользуюсь break (когда речь идет про поиск обычно), continue - вообще никогда
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как копировать только выбранные "заметки"? AKIS-Falcon DAX: Функционал 6 08.02.2005 18:28
Ошибка при переименование номенклатуры и не только Роман Кошелев DAX: Функционал 11 22.10.2004 16:51
Печать только четных или нечетных страниц отчета Yury DAX: Программирование 9 07.02.2003 15:37
Хочу видеть только итоги AKIS DAX: Функционал 1 19.08.2002 11:49
Ошибка при переименование номенклатуры и не только Роман Кошелев DAX: База знаний и проекты 0 19.04.2002 20:32

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:46.