![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Black_Joker |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 9.11.2002 Где: Таганрог Репутация: нет Всего: нет |
Сколько можно сделать вложений в струкутру
If Then Else К примеру: (1 уровень) If then (2 уровень) If then (3 ровень) if then (...) Else (3 уровень) ... Else (1 уровень) Сколько уровней можно делать? |
|||
|
||||
var-alex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 7.10.2003 Где: Коломна, MCK Репутация: 1 Всего: 1 |
Сколько хочешь, только я -бы писал
if then begin if then begin end else begin end; end else begin end; Так понятней, и наверняка не ошибётся компилер к какому if rfrq else |
|||
|
||||
val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: нет Всего: 7 |
Не совсем так... Насколько мне известно - не более 64 штук. -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
В TurboPascal было 128, сколько в Дельфи - не знаю, но, по-моему, уже десяток уровней вложенности не самая хорошая идея...
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: нет Всего: 7 |
Действительно, одля этого используют ператор case -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
case не все типы берёт. Иногда эргономичнее наворачивать вот такие вот условные деревья. |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
не думаю. сама ситуация представляется порочной в принципе, мне кажется, надо менять логику программы. эргономичность - это офигительно. но для современных компов сэкономленный, пусть даже, мегабайт - ничто, по сравнению с читабельностью кода, и в некоторых случаях именно из этого следует исходить.
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Под эргономичностью понимается удобство работы человека, а не железки. Дело в том, что мне, например, нужно постепенно наворачивать это дерево if'ов по мере усложнения проекта, причём наворачивать однообразно - практически бездумно. Читабельность кода также остаётся на уровне благодаря должному форматированию. |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
я понимаю, но всё равно я бы решал вопрос как-то иначе. трудно сказать что-то осмысленное без знания конкретики, конечно. просто при написании кода я придерживаюсь одного простого правила: если проедура занимает больше одного PgDn'а, - её надо менять. и бесконечное ифы - это не есть здорово
![]() -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Fedor |
|
||||
![]() Днепрянин ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2090 Регистрация: 8.2.2003 Где: Великий Репутация: нет Всего: 32 |
А представь, что у тебя десять уровней ифов, и в каждом - по несколько елсов, а там есть свои ифы... Так конечно можно легко бездумно наворотить программу, да причем и правильную... Но представь, что кто-то будет читать после тебя программу или ты сам месяцев через 12 вдруг захочешь вспомнить, шо оно там було. Программа будет почти нечитаема.
Крут... ![]() -------------------- Мы - Днепряне. Мы всех сильней. |
||||
|
|||||
NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 6 Всего: 23 |
Всего-то! ![]() |
|||
|
||||
NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 6 Всего: 23 |
Morpheus, но ведь программа пишется для того, чтобы работать, а не как книжка.
![]() Хотя момент тоже актуальный. |
|||
|
||||
val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: нет Всего: 7 |
Господа, не забывайте, что программы пишуться не только для обыкновенных PC! А в Дельфи частенько отлаживат алгоритмические модели... -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Не, блин, я про офисное приложение чахлодохлое говорю, а он сразу про алгоритмические модели! ТАМ, ессно, о таком даже не думается. Morpheus Я говорю только о том случае, когда else только один - для следующего if'а. Представь что-то типа анализа файла настроек. |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Представил, там же вообще вложенные if не нужны! Делаешь параметры в ввиде set of something, далее обычным одновложенным if, in и case делаются все выборы. Ещё раз говорю, и ни я один - вложенность if больше 3х-4х это во первых плохой стиль программирования, а во вторых неправильная архитектура программы - тем более в том случае, что ты привёл - просто надо не делать тупой набор офигенного количества строковых переменных, которых действительно будет много и вариантов их комбинаций ещё больше, а остановиться и подумать как вместо строковых параметров использовать другие типы: массивы, записи, множества, свои классы и т.п. Всё это можно инкапсулировать в код который будет совершенно прозрачным, причём добавление нового параметра не будет приводить к ещё одному if... PS. Многовложенные if всегда легко заменяются на некое количество процедур. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |