Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Gwini
10 / 10 / 3
Регистрация: 08.03.2014
Сообщений: 70
#1

Корректно ли использовать goto? - C++

13.08.2014, 19:29. Просмотров 1498. Ответов 24
Метки нет (Все метки)

Читал что оператор goto вообще советуют не использовать, кроме разве что глубоких циклов. Но нормально ли это будет, например, вот в таком коде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main()
{
    char choice;
    cin >> choice;
    while (cin.get() != '\n')
    {
        cin.ignore(100, '\n');
        bad:cout << "Bad choice. Try again.\n";
        cin >> choice;
        continue;
    }
    switch (choice)
    {
    case 'a': cout << "A";
            break;
    case 'b':cout << "B";
    default: goto bad;
    }
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2014, 19:29     Корректно ли использовать goto?
Посмотрите здесь:

Использовать оператор перехода GOTO в приведенном коде - C++
Мне нужен оператор перехода GOTO в программе. Если выводится сообщение &quot;Данное число в массиве отсутствует&quot;, то должно перейти на начало...

При вводе пользователем числа от 0 до 9, вывести на экран название программы (использовать оператор goto) - C++
Программу по заданию я написал Написать программу для выполнения следующих действий. При вводе цифры от 0 до 9 будет выводиться ее...

Избавиться от goto. - C++
Нашла в интернете одну очень интересную реализацию меню, но там есть goto. по идее от него можно избавиться применением циклов, но у меня...

Альтернатива goto в С++ - C++
Как перейти из конца цикла (перенаправление - first) в самое начало программы, дело в том, что goto нельзя перенаправлять в начало...

Выйти из goto. - C++
Работаю в С++. Было задание написать программу с использованием goto. Вот код: ...

C++ Замена goto - C++
Здравствуйте. Имеется программа которая меняет в предложении местами заданные глаголы. Всё работает, но нужно что бы было без оператора...

Аналог goto - C++
Подскажите ,есть ли в С++ аналог оператора goto? Есть код: int main() { setlocale(0, &quot;&quot;); //поддержка русского языка int...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
13.08.2014, 19:45     Корректно ли использовать goto? #2
Gwini, нет не нормально в любой вариации, забудьте об этом опреаторе.
Всё прекрасно решается без готу посредством циклов. О коде поста говорить вообще не хочется, прсото напишу он плох.
Водяной Змей
Заблокирован
13.08.2014, 19:49     Корректно ли использовать goto? #3
А зачем тут именно goto? Почему нельзя сделать функцию bad()?
Может есть алгоритмы, которые кому-то кажутся более понятными с goto. Но здесь-то он что дает?
Gwini
10 / 10 / 3
Регистрация: 08.03.2014
Сообщений: 70
13.08.2014, 19:53  [ТС]     Корректно ли использовать goto? #4
Цитата Сообщение от Водяной Змей Посмотреть сообщение
А зачем тут именно goto? Почему нельзя сделать функцию bad()?
я просто спросил нельзя ли его использовать в подобных ситуациях. Понятно что можно сделать по-другому, но это мне показалось удобным вот я и спросил.
Водяной Змей
Заблокирован
13.08.2014, 19:54     Корректно ли использовать goto? #5
нельзя ли его использовать в подобных ситуациях
Ну если ваш код никто не увидит, кроме вас, или тех, кто определенно считает подобные вещи удобными, - используйте.
Gwini
10 / 10 / 3
Регистрация: 08.03.2014
Сообщений: 70
13.08.2014, 19:57  [ТС]     Корректно ли использовать goto? #6
Понятно
Avazart
Эксперт С++
7121 / 5298 / 273
Регистрация: 10.12.2010
Сообщений: 23,432
Записей в блоге: 17
13.08.2014, 20:10     Корректно ли использовать goto? #7
Цитата Сообщение от Gwini Посмотреть сообщение
вообще советуют не использовать, кроме разве что глубоких циклов.
Должна быть четкая аргументация чем оправдано использование go to, чаще всего такой аргументации нет ибо можно успешно использовать другие конструкции.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 1
13.08.2014, 21:15     Корректно ли использовать goto? #8
Не использовать goto - это очень правильно.
В крайнем случае - можете использовать для перехода вперед по коду программы,
но не назад и, тем. более, внутрь цикла, как в Вашем примере!
Водяной Змей
Заблокирован
13.08.2014, 21:36     Корректно ли использовать goto? #9
zss, +
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
13.08.2014, 21:39     Корректно ли использовать goto? #10
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
нет не нормально в любой вариации, забудьте об этом опреаторе.
Нет, нормально в некоторых вариациях. Пусть автор помнит о нем и применяет, где считает необходимым.
some_name
Вежливость-главное оружие
221 / 221 / 55
Регистрация: 19.02.2013
Сообщений: 1,431
13.08.2014, 21:52     Корректно ли использовать goto? #11
Цитата Сообщение от Gwini Посмотреть сообщение
Читал что оператор goto вообще советуют не использовать, кроме разве что глубоких циклов. Но нормально ли это будет, например, вот в таком коде:
Да, советуют. Однако я сам недавно смотерл исзодники какого-то класса в Java. И там видел использование этого оператора.

Добавлено через 1 минуту
ААА, это был класс с датой, там был парсик строки.
-=ЮрА=-
Заблокирован
Автор FAQ
13.08.2014, 21:53     Корректно ли использовать goto? #12
Vourhey,честно не могу представить ни одного варианта где готу нельзя заменить условием либо континьюе в цикле. Максимум - выйти вконец какого-то полотна из кода но опять же кто мешает сделать там ритерн или накинуть условие.
some_name
Вежливость-главное оружие
221 / 221 / 55
Регистрация: 19.02.2013
Сообщений: 1,431
13.08.2014, 21:53     Корректно ли использовать goto? #13
Да, это класс Date.java
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
14.08.2014, 02:30     Корректно ли использовать goto? #14
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Vourhey,честно не могу представить ни одного варианта где готу нельзя заменить условием либо континьюе в цикле
Заменить можно. Только зачем?
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Максимум - выйти вконец какого-то полотна из кода но опять же кто мешает сделать там ритерн или накинуть условие.
Никто не мешает. Но зачем плодить условия, если где-то удобнее, можно написать через goto?
Причин убегать от goto кроме личной неприязни никакой нет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2014, 03:05     Корректно ли использовать goto?
Еще ссылки по теме:

Преобразовать for в goto - C++
люди помогите, задали написать функцию с помощью goto вот весь код #include &lt;cmath&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; using...

Ненависть к Goto - C++
Почему к Goto такая ненависть ? Я считаю, что goto универсальный оператор, благодаря которому можно отказаться от всяких While и For. ...

Замена goto - C++
Здравствуйте! Имеется следующий код: start: double a; cout &lt;&lt; &quot;\nEnter side of triangle: &quot;; while(!(cin&gt;&gt;a) ||...

Оператор Goto и ветвление - C++
Помогите, пожалуйста, написать программу, которая сперва считывает введенное с клавиатуры число, а потом, если введено одно значение...

Изменить программу (goto) - C++
Задание: Программа выводит цифры (словами) от 0 до 9, в зависимости от введенного значения. В остальных случаях , выводится сообщение с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,734
14.08.2014, 03:05     Корректно ли использовать goto? #15
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Vourhey,честно не могу представить ни одного варианта где готу нельзя заменить условием либо континьюе в цикле.
в микроконтроллерах например вернутся на точку старта
Цитата Сообщение от Vourhey Посмотреть сообщение
Причин убегать от goto кроме личной неприязни никакой нет.
а то что структурность программы теряется, это так мелочи
вернемся опять к "спагети"
Yandex
Объявления
14.08.2014, 03:05     Корректно ли использовать goto?
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru