Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];

Вниз

Dreak   Найти похожие ветки 

 
gsu   (2003-01-21 15:01) [0]

У мя сложная система циклов, обусловленная применением нетривиальных методов.
Допустим, я нахожусь на 5 цикле вложенности и мне необходимо отBreakнуться на 3 уровень.
Пройдет ли такая конструкция:
Break;
Break;
и, главное, имеется ли более правильный путь решения данной задачи ?


 
gsu   (2003-01-21 15:02) [1]

Dreak в смысле Вreak


 
Skier   (2003-01-21 15:03) [2]

>gsu
Goto должен устроить...


 
Smithson   (2003-01-21 15:04) [3]

goto?


 
gsu   (2003-01-21 15:07) [4]

>> Skier ©
Спасибо, но бытует мнение, что применение данного оператора неправильно. Кстати какие у вас на этот счет мнения ?


 
gsu   (2003-01-21 15:07) [5]

Торможу, масло масленное (-:|~


 
Y   (2003-01-21 15:09) [6]

>система циклов, обусловленная применением нетривиальных методов

Может, методы пересмотреть? :)

или исп-ть доп.условие и цикл While


 
Skier   (2003-01-21 15:11) [7]

>gsu
Мнения есть всякие...но сам дедушка Borland не стесняеться
использовать goto.
Например загляни в ...:\...\Source\Decision Cube\MXDSSQRY.pas


 
gsu   (2003-01-21 15:11) [8]

нет методы, пересмотреть, конечно, можно (я бы так и сделал), но ...


 
Kair   (2003-01-21 15:11) [9]

>gsu © (21.01.03 15:07)
>>> Skier ©
>Спасибо, но бытует мнение, что применение данного оператора >неправильно. Кстати какие у вас на этот счет мнения ?

Применение данного оператора считается дурным тоном программирования.


 
Smithson   (2003-01-21 15:13) [10]

У кого считается?


 
REA   (2003-01-21 15:14) [11]

Можно вынести циклы в локальную функцию и из середины сделать Exit. Вылетишь соответственно из всех циклов функции, но надо еще память почистить - кажется она чистится в блоках finally при Exit.


 
Игорь Шевченко   (2003-01-21 15:14) [12]

Применение логики из 5 вложенных циклов тоже считается дурным тоном.
Goto здесь - рулез фарева!


> Применение данного оператора считается дурным тоном программирования


Если к месту, то не считается.


 
gsu   (2003-01-21 15:15) [13]

>> У кого считается?
Кстати, у нас в универе так считалось


 
Kair   (2003-01-21 15:15) [14]

>Smithson © (21.01.03 15:13)
>У кого считается?

Не помню. Я это в какой-то книге прочитал.


 
Игорь Шевченко   (2003-01-21 15:16) [15]

gsu © (21.01.03 15:15)

Верующий ? :-)


 
gsu   (2003-01-21 15:17) [16]

>> Применение логики из 5 вложенных циклов тоже считается дурным тоном
Ничего не могу поделать, честно, была стройная система, а сейчас потребовалось ввести в низ еще цикл и -> выйти надо из 2 сразу. А времени переделать ..., но я не виноват !


 
jee   (2003-01-21 15:17) [17]

Да уж, я не ожидал такого количества goto. Правда у борланда только в одном вышеуказанном файле. Надо заметить там действительно немалая вложенность. Зато в Rx,Fastreport-е и LMD ребята совсем не стесняются. Я в шоке!!!


 
Skier   (2003-01-21 15:18) [18]

Ну началось ! :))


 
Smithson   (2003-01-21 15:20) [19]

Дикие вы люди. Когда мне говорят о неприличности goto, я сразу вспоминаю ассемблер. И долго смеюсь.


 
gsu   (2003-01-21 15:21) [20]

>> Игорь Шевченко ©
У мя ранее ни одного go to не было. Наверное, надо с чего нибудь начинать (-:|~


 
REA   (2003-01-21 15:22) [21]

Я уже молчу что Борланд в системных файлах (типа system.pas) с именами делает и функциями - шифровка просто.


 
gsu   (2003-01-21 15:22) [22]

>> Smithson ©
Дикие, но обучаемые. А поподробней ...


 
Smithson   (2003-01-21 15:24) [23]

Поподробнее.
Листинг на ассемблере состоит на 20% из jmp (тот же goto, называется по другому) и условных переходов (if then goto).


 
gsu   (2003-01-21 15:25) [24]

>> Листинг на ассемблере состоит на 20% из jmp (тот же goto, называется по другому) >> и условных переходов (if then goto)
это я знаю, спасибо


 
uw   (2003-01-21 15:32) [25]

Я посмотрел свой проект, в нем 34000 строк. Goto использую 2 раза. Один раз лень было придумывать переменную, второй раз - выбираюсь из внутреннего цикла. И не стыдно.


 
gsu   (2003-01-21 15:39) [26]

>> uw ©
мне еще пару тысяч не хватает (-:|~


 
Anatoly Podgoretsky   (2003-01-21 15:39) [27]

Smithson © (21.01.03 15:24)
С чего бы это равентство между системой команд процессора и язывами программированя, в ассемблере нет GOTO, только мнемокоды инструкций процессора


 
Smithson   (2003-01-21 15:41) [28]

Во что что транслируется язык прогрммирования?
Но это уже флуд, так что sorry.


 
han_malign   (2003-01-21 15:48) [29]

goto является неприличным в блочно-структурированном программировании, но в некоторых конкретных случаях, в однопоточных приложениях, позволяет обойтись без применения конечных автоматов и лишних дублирующих проверок.
Example(утрированно):
1.
b2:=false;
while(eval1 and not b2)do begin
b2:=eval2;
end;
if(b2)then ...;

или
2.
while(true)do begin
if(not eval1)then goto skip1;
if(eval2)then goto do1;
end;
do1: ...
skip1:

- в последнем случае на одно вычисление логического выражения, две проверки условия, на один или два(в случае (not b1)) прыжка и, как минимум, на два присваивания - меньше, зато первый - структурный...


 
gsu   (2003-01-21 15:52) [30]

for (-:|~


 
bis   (2003-01-21 16:08) [31]

А чем по вашему мнению являются exception? Это тоже можно сказать однонаправленные прыжки, причем не только из каких-то циклов, а намного дальше.
Goto не виноват, что с помощью него можно делать неправильные с точки зрения структурного программирования вещи. Если уж никак и
он сойдет (не помню правда, когда я последний раз его использовал)

И нож холодное оружие и масло на булочки им можно мазать)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.008 c
1-96804
MECHANIC
2003-01-19 15:37
2003.01.30
array


1-96737
alextov
2003-01-21 16:14
2003.01.30
Как отформатировать таблицу в Word e так чтоб она была посередине


1-96661
viper
2003-01-21 15:15
2003.01.30
Как узнать количество копий запущеныых программ?


6-96908
DDF
2002-12-04 06:55
2003.01.30
как определить есть ли интерент?


1-96662
gsu
2003-01-21 15:01
2003.01.30
Dreak





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский