Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.10.2016
Сообщений: 53

Как заменить goto циклом for?

24.10.2016, 01:26. Показов 3652. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int main()
{
    setlocale(LC_ALL, "rus");
    srand(time(NULL));
    cout << "Для запуска игры нажимайте a \n";
    start:
    int ab;
    ab =rand() % 10;
    int ch = 0;
    (_kbhit());
    ch = _getch();
    if (ch == 97)
    {
        cout << ab << "\n";
        if (ab == 9)
        {
            cout << "you win\n";
            Sleep(2000);
            exit(0);
        }
        else
            goto start;
        
    }
}
Один знакомый сказал мне, что goto для "самых умных" и нужно юзать for.
Честно я пытался использовать for; но с моим условием , что ab = rand, компилятор не соглашался и просил поставить что-то попроще рандомных чисел.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.10.2016, 01:26
Ответы с готовыми решениями:

О том, почему нелюбим goto; как его правильно использовать; и чем в моем случае его можно заменить?
Вот есть такой оператор всеми программистами нелюбимый. Goto называется. Говорят, что его использование всегда можно обойти и...

Заменить оператор goto на цикл, если это возможно
Есть простой таймер #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; int main(){ ...

Превращение кода с goto в код без goto
Помогите переписать это код без goto и потери производительности.А то мне кажется написано совершенно не оптимально.if(f&gt;0) { ...

4
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
24.10.2016, 03:26
mrzhnex, можете поставить цикл while с условием "пока ab != 9". for обычно используется при определенном количестве шагов. А вот насчет goto ваш знакомый прав. goto лучше не использовать вообще.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
24.10.2016, 03:31
Лучший ответ Сообщение было отмечено mrzhnex как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int main()
{
    setlocale(LC_ALL, "rus");
    srand(time(NULL));
    cout << "Для запуска игры нажимайте a \n";
    int ch;
    do
    {
        int ab;
        ab =rand() % 10;
        ch = 0;
        (_kbhit());
        ch = _getch();
        if (ch == 97)
        {
            cout << ab << "\n";
            if (ab == 9)
            {
                cout << "you win\n";
                Sleep(2000);
                exit(0);
            }
        }
    } while (ch == 97);
}
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
24.10.2016, 10:30
Цитата Сообщение от Ryuk Посмотреть сообщение
for обычно используется при определенном количестве шагов.
???
А так разве нельзя
C++
1
2
3
for(; условие;) {
 ...
}
0
188 / 187 / 46
Регистрация: 24.03.2011
Сообщений: 670
24.10.2016, 11:11
Цитата Сообщение от Ryuk Посмотреть сообщение
for обычно используется при определенном количестве шагов.
Вы путаете `for` в C++ в for'ом в некоторых других языках, вроде Паскаля... Там это действительно так. Но не в С++.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.10.2016, 11:11
Помогаю со студенческими работами здесь

Возможно ли это заменить циклом?
Здравствуйте! Подскажите, как этот фрагмент, можно заменить циклом? ... cout &lt;&lt; &quot;Введите количество часов: &quot;; cin...

Программа с метками и оператором перехода GOTO. Программа с циклом полусловия
Задача №9. Прошу вас, помогите. Не знаю как решать вообще.

Заменить goto на процедуру
Доброе время суток. Подскажите пожалуйста, как заменить goto на процедуру. Код готовый, нужно только отредактировать, нашел тут на форуме...

Goto заменить на цикл
замените пожалуйста goto на цикл program dihotomia; Label 1,2; var a,b,e,d,C,x1,x2,xmin,fmin: real; function f(x:real):...

В программе заменить функцию goto
Помогите пожалуйста заменить goto на процедуру. Я никак не понимаю как это сделать. Вот оригинальный текст программы: Program cwadr...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru