Здравствуйте, Vain, Вы писали:
V>Так же да не так же. В версии с флажками мне не надо нарушать порядка чтения кода, я просто продолжаю читать код последовательно, в версии с goto мне обязательно надо метку найти, чтобы посмотреть что там за код.
Это какая-то твоя личная особенность. Мне, например, вполне достаточно увидеть goto afterLoop;, чтобы предположить, что это какой-то досрочный выход из цикла, и поверить, что метка afterLoop находится там, где и должна -- сразу за телом объемлющего цикла...
Но я теперь, по крайней мере понял, что тебе в goto не нравится. Ты типа на goto глазами скачешь, а на break нет.
А ты не пробовал просто не скакать?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Это какая-то твоя личная особенность. Мне, например, вполне достаточно увидеть ... и поверить, что метка afterLoop находится там, где и должна -- сразу за телом объемлющего цикла...
Дак в этом и дело, что break не надо проверять, при его встрече сразу понятно, что переход будет за тело цикла.
break более удобный в этом смысле аналог goto (вдруг-таки метка из goto не сразу за телом цикла)
K>Дак в этом и дело, что break не надо проверять, при его встрече сразу понятно, что переход будет за тело цикла. K>break более удобный в этом смысле аналог goto (вдруг-таки метка из goto не сразу за телом цикл
Ну это будет ошибка. Очень редкая. Я, например, такого ни разу не встретил...
С другой стороны я не спорю, что брейк ещё удобнее, но для вложенных циклов в С/С++ брейка нет...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
V>>Так же да не так же. В версии с флажками мне не надо нарушать порядка чтения кода, я просто продолжаю читать код последовательно, в версии с goto мне обязательно надо метку найти, чтобы посмотреть что там за код. E>Это какая-то твоя личная особенность. Мне, например, вполне достаточно увидеть goto afterLoop;, чтобы предположить, что это какой-то досрочный выход из цикла, и поверить, что метка afterLoop находится там, где и должна -- сразу за телом объемлющего цикла... E>Но я теперь, по крайней мере понял, что тебе в goto не нравится. Ты типа на goto глазами скачешь, а на break нет. E>А ты не пробовал просто не скакать?
А код после метки ты уже знаешь? Или ты читаешь код сразу в обход глаз?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
E>>А ты не пробовал просто не скакать? V>А код после метки ты уже знаешь? Или ты читаешь код сразу в обход глаз?
Не понял. Это будет код после цикла. Ты, когда цикл читаешь, хочешь до того, как дочитаешь до конца, заглянуть за его тело? Если нет, то не ясно с чего вдруг такое желание возникает при выходе по гото...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>>>А ты не пробовал просто не скакать? V>>А код после метки ты уже знаешь? Или ты читаешь код сразу в обход глаз? E>Не понял. Это будет код после цикла. Ты, когда цикл читаешь, хочешь до того, как дочитаешь до конца, заглянуть за его тело?
Ну так обычно такой цикл и на экран не влезет. E>Если нет, то не ясно с чего вдруг такое желание возникает при выходе по гото...
Потому-что в примерах что были метки стояли в конце функции.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
V>>>А код после метки ты уже знаешь? Или ты читаешь код сразу в обход глаз? E>>Не понял. Это будет код после цикла. Ты, когда цикл читаешь, хочешь до того, как дочитаешь до конца, заглянуть за его тело? V>Ну так обычно такой цикл и на экран не влезет.
Ты на вопрос-то ответь...
E>>Если нет, то не ясно с чего вдруг такое желание возникает при выходе по гото... V>Потому-что в примерах что были метки стояли в конце функции.
Читай примеры внимательнее...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
V>>>>А код после метки ты уже знаешь? Или ты читаешь код сразу в обход глаз? E>>>Не понял. Это будет код после цикла. Ты, когда цикл читаешь, хочешь до того, как дочитаешь до конца, заглянуть за его тело? V>>Ну так обычно такой цикл и на экран не влезет. E>Ты на вопрос-то ответь...
Завист от кода. Но в общем случае я сначало цикл изучаю игнорируя все break и continue, с гоуту так не получится, надо сразу к метке лезть, её изучать.
E>>>Если нет, то не ясно с чего вдруг такое желание возникает при выходе по гото... V>>Потому-что в примерах что были метки стояли в конце функции. E>Читай примеры внимательнее...
Ну так как правило cleanup метки в конце функции ставят.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
E>>Ты на вопрос-то ответь... V>Завист от кода. Но в общем случае я сначало цикл изучаю игнорируя все break и continue, с гоуту так не получится, надо сразу к метке лезть, её изучать.
Почему? Просто предположи, что это выход из цикл, потом проверишь...
V>Ну так как правило cleanup метки в конце функции ставят.
Так мы о cleanup или о выходе из цикла? Их ещё и называют по-разному...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>>>Ты на вопрос-то ответь... V>>Завист от кода. Но в общем случае я сначало цикл изучаю игнорируя все break и continue, с гоуту так не получится, надо сразу к метке лезть, её изучать. E>Почему? Просто предположи, что это выход из цикл, потом проверишь...
Просто выход из цикла не бывает. Как правило после каждого цикла есть код, он же тебя не смущает. А почему обычное условие и брек должны?
V>>Ну так как правило cleanup метки в конце функции ставят. E>Так мы о cleanup или о выходе из цикла?
Так вам шашечки или ехать? Вы демонстрируете goto ради самого goto?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
E>>Почему? Просто предположи, что это выход из цикл, потом проверишь... V>Просто выход из цикла не бывает. Как правило после каждого цикла есть код, он же тебя не смущает. А почему обычное условие и брек должны?
Ну, пока цикл невложенный, просто break'а вполне хватает. А вот из вложенного циткла уже приходится выходить по goto. Но я так и не понял в чём же там принуипиальное отличие от break, кроме того, что ты по каким-то своим внтренним причинам не умеешь читать код с goto...
E>>Так мы о cleanup или о выходе из цикла? V>Так вам шашечки или ехать? Вы демонстрируете goto ради самого goto?
Ну я напомню тебе основное направление обсуждения. Тебя попросили показать чем плох goto сам по себе, на примере любой из двух распространённых практик его использования в НОРМАЛЬНЫХ программах.
1) выход из вложенных циклов в С++
2) в С goto cleanup
Дык проблем В ЭТИХ ДВУХ КОНКРЕТНЫХ СЛУЧАЯХ есть или нет?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>>>Почему? Просто предположи, что это выход из цикл, потом проверишь... V>>Просто выход из цикла не бывает. Как правило после каждого цикла есть код, он же тебя не смущает. А почему обычное условие и брек должны? E>Ну, пока цикл невложенный, просто break'а вполне хватает. А вот из вложенного циткла уже приходится выходить по goto.
А по встроенному условию цикла не приходиться выходить?
E>Но я так и не понял в чём же там принуипиальное отличие от break, кроме того, что ты по каким-то своим внтренним причинам не умеешь читать код с goto...
Вот оно как получается, чтение голых джампов в коде высокоуровневого языка это оказывается личные проблемы, а мужики то и не знали!
E>>>Так мы о cleanup или о выходе из цикла? V>>Так вам шашечки или ехать? Вы демонстрируете goto ради самого goto? E>Ну я напомню тебе основное направление обсуждения. Тебя попросили показать чем плох goto сам по себе, на примере любой из двух распространённых практик его использования в НОРМАЛЬНЫХ программах. E>1) выход из вложенных циклов в С++ E>2) в С goto cleanup E>Дык проблем В ЭТИХ ДВУХ КОНКРЕТНЫХ СЛУЧАЯХ есть или нет?
1. Нарушение потока выполнения, которое свойственно именно goto как таковому. Как следствие поиск метки — скроллирование экрана вверх/вниз. Случаи с простыми циклами не имеют смысла, там и без goto можно обойтись.
2. Отступы для меток, которые труднее ищутся.
3. Использование goto элементарно сподвигает программиста писать его и впредь, как результат страдает самодисциплина (тут уже про это говорилось). После этого goto импользуется не только там где это необходимо, но и везде, что как раз и способствует тому спагетти про которое и речь была.
4. Спроси ещё раз.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]