В то время как выход из цикла, без известного способа

Я только что задал тот же вопрос, но вопрос закрыт, может быть, я нарушил правила ... или беспорядок.

В любом случае я знаю о выходе из цикла, например break, while(bool), return, n=1, n=0 while(n), Мне нужен другой метод, отличный от вышеуказанного.

Я решил эту проблему с помощью while(mode!=2) спасибо за все, что ответили на мой незрелый вопрос :) я обещаю тщательно изучить ваши отзывы!

Вопрос закрыт.

Вот моя структура кода :) ↓

        
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>

int main() {
    
    int  mode=1;
    while (mode != 2)
    {
        printf("\ninput: "); scanf("%d", &mode);
        switch (mode) 
        {
        case 1: printf("\none"); Sleep(1500); break;
        case 2:
            printf("\nsomething");
            Sleep(1500);
            break;

        default: printf("\nStackOverFlow");  break;
        }
    }
    return 0;
}

Распространенным способом решения этой проблемы является использование логической переменной состояния вместо жестко запрограммированного бесконечного цикла. Если он используется как часть условия цикла или как отдельное условие для break, это не имеет большого значения и больше зависит от вашего варианта использования.

Some programmer dude 21.02.2023 08:00

Проблема, с которой вы столкнулись, заключается в том, что break в этот момент относится к вложенному оператору switch, а не к циклу while, который его содержит. C не имеет многоуровневого break.

Keith Thompson 21.02.2023 08:05

Какую проблему ты пытаешься решить? Что вам нужно, чего не хватает break, return и условиям цикла?

Caleb 21.02.2023 08:14

Отвечает ли это на ваш вопрос? Как выйти из вложенных циклов?

nielsen 21.02.2023 08:26

Редактирование кода в вопросе после получения ответов/комментариев делает их недействительными. И ваше новообретенное решение может не сработать.

Haris 21.02.2023 10:43

Избегайте использования имен переменных, которые являются ключевыми словами C.

stark 21.02.2023 13:49

Извините, я не хотел дублировать вопрос.

REDALOE 21.02.2023 15:34

Я редактирую свой код, чтобы он работал сейчас, и, как вы знаете, scanf работает, когда проверяется SDL, в целях безопасности отключено условие.

REDALOE 21.02.2023 15:46

Я только что заметил, что перепутал регистр с переменной режима, которую я изначально должен был ввести.

REDALOE 21.02.2023 15:56
Руководство для начинающих по веб-разработке на React.js
Руководство для начинающих по веб-разработке на React.js
Веб-разработка - это захватывающая и постоянно меняющаяся область, которая постоянно развивается благодаря новым технологиям и тенденциям. Одним из...
Разница между Angular и React
Разница между Angular и React
React и AngularJS - это два самых популярных фреймворка для веб-разработки. Оба фреймворка имеют свои уникальные особенности и преимущества, которые...
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Веб-скрейпинг, как мы все знаем, это дисциплина, которая развивается с течением времени. Появляются все более сложные средства борьбы с ботами, а...
Калькулятор CGPA 12 для семестра
Калькулятор CGPA 12 для семестра
Чтобы запустить этот код и рассчитать CGPA, необходимо сохранить код как HTML-файл, а затем открыть его в веб-браузере. Для этого выполните следующие...
ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023
ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023
О тренинге HTML JavaScript :HTML (язык гипертекстовой разметки) и CSS (каскадные таблицы стилей) - две основные технологии для создания веб-страниц....
Как собрать/развернуть часть вашего приложения Angular
Как собрать/развернуть часть вашего приложения Angular
Вам когда-нибудь требовалось собрать/развернуть только часть вашего приложения Angular или, возможно, скрыть некоторые маршруты в определенных средах?
7
9
92
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте goto:

Это приведет только к выходу из цикла while.

while (true) { 
    ...
    if (some condition) {
        goto CLEANUP;
    }
    ...
}
CLEANUP:
...

Exit() программа:

while (true) {
    ...
    if (some condition) {
       exit (EXIT_FAILURE);
       
       /* OR, if in the `main()` function: */
       return EXIT_FAILURE;
    }
    ....
}

Abort() программа:

while (true) { 
    ...
    if (some condition) {
        abort ();
    }
    ...
}

Некоторые другие альтернативы, которые сделают гораздо больше, чем просто выход из цикла while, включают:

  • Функция raise().
  • Функция quick_exit().
  • Функция _Exit().
  • Функция _exit. (Обратите внимание, что это не определено в стандарте C, это расширение POSIX)

Другие вопросы по теме