Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
3 / 3 / 0
Регистрация: 26.11.2011
Сообщений: 84

Зациклить операцию ввода при неверных данных

25.12.2012, 23:38. Показов 7370. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День(ночь) добрый, и заранее спасибо)
Вопрос:
Есть две функции
C#
1
2
3
4
5
private void ResultOp_ExecuteCode(object sender, EventArgs e)
        {
            Console.WriteLine("Result: " + this.result);
            Console.ReadLine();
        }
C#
1
2
3
4
5
6
7
8
9
private void InitOp_ExecuteCode(object sender, EventArgs e)
        {
            Console.WriteLine("Первое число: ");
            this.number1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Второе число: ");
            this.number2 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Выбор операции - (-),(+),(/),(*): ");
            this.operation = Console.ReadLine();
        }
Сама программа - калькулятор (консольный), как записать чтобы при выполнении 1 расчета она опять запускала ввод чисел, операцию и расчет, и так бесконечно?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.12.2012, 23:38
Ответы с готовыми решениями:

Обеспечение защиты от ввода неверных данных с помощью try-catch
Всем привет. Короче такая проблема, задали по программированию одну программу, наипростейшую, которую нужно постепенно модифицировать....

Вывод ошибки при вводе неверных данных
Есть программа "Угадайка - 23", которая угадывает задуманное число в диапазоне от 0 до 22. Варианты вывода реализованы через if - else....

как перегрузить операцию ввода
Подскажите как перегрузить операцию ввода для объектов. C#. а то я нигде что то не найду...

4
 Аватар для Vlad_IT
1452 / 360 / 61
Регистрация: 03.04.2010
Сообщений: 2,096
26.12.2012, 00:49
Если правильно понял, то что-то типа так. Ставите вечный цикл, и оператором break, выходите из него при необходимости.
C#
1
2
3
4
5
6
7
8
9
10
11
        static void Main(string[] args)
        {
            while (true) //вечный цикл
            {
                Console.WriteLine("Введите любое число. Для выхода введите exit:"); 
                string input = Console.ReadLine(); //Получаем введенные данные 
                if (input == "exit") //Если пользователь ввел слово exit, то 
                    break; //Выходим из вечного цикла
                int number = int.Parse(input); //Получаем цифру
            }
        }
Можно сделать через переменные статуса операции, то есть цикл будет работать, если переменная state, равна true. Выходит что если мы в конструкции цикла, изменим ее значение на false, то цикл больше не начнется, и программа будет закрыта.

Добавлено через 2 минуты
То есть где строка
C#
1
int number = int.Parse(input); //Получаем цифру
Там Ваш код калькулятора. Мы имеем введенные данные в строковом виде, в переменной input. После окончания работы калькулятора, цикл начинается с начала, и требует пользователя ввести данные, если тот введет ключевое слово (в данном случае это exit), то цикл завершается оператором break
1
27 / 27 / 12
Регистрация: 11.11.2009
Сообщений: 86
26.12.2012, 00:49
в бесконечный цикл загоняешь свои функции
C#
1
2
3
do {
   /* что-нибудь делаем */
} while(true)
1
 Аватар для Vlad_IT
1452 / 360 / 61
Регистрация: 03.04.2010
Сообщений: 2,096
26.12.2012, 00:54
Аналогично с рекурсией

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        static void Main(string[] args)
        {
            calc(); //вызываем функцию
        }
        static void calc()
        {
            Console.WriteLine("Введите любое число. Для выхода введите exit:"); //требуем данные
            string input = Console.ReadLine();
            if (input == "exit") //проверяем 
                return; //выходим из функции (можно также возвращать значения)
            int number = int.Parse(input);
            calc(); //вызываем функцию снова
        }
Добавлено через 1 минуту
Вот так компактнее, в главной функции

C#
1
2
3
4
5
6
7
8
9
        static void Main(string[] args)
        {
            Console.WriteLine("Введите любое число. Для выхода введите exit:"); //Требуем данные
            string input = Console.ReadLine();
            if (input == "exit") //Проверяем
                return; //Выходим если пользователь  ввел exit
            int number = int.Parse(input); //Работаем
            Main(args); //Вызываем функцию заново. 
        }
1
3 / 3 / 0
Регистрация: 26.11.2011
Сообщений: 84
26.12.2012, 01:07  [ТС]
Спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.12.2012, 01:07
Помогаю со студенческими работами здесь

Остановка работы программы при вводе неверных значений
Как остановить работу программы после того, как ввел отрицательное число и вывело сообщение об ошибке? using System; using...

Возврат к заполнению формы в случае ввода неверных данных
Добрый день! Подскажите пожалуйста, как организовать возврат к заполнению формы в случае ввода неверных данных? Имеется форма с полями...

Зациклить операцию
День( а, может и ночь) всем добрый, делаю калькулятор через WorkFlow (консольный), при тестировании возник вопрос - как сделать...

С формы обратной связи с капчей постоянно приходит сообщение об ошибке при верных и неверных введенных данных
Здравствуйте! Есть форма обратной связи, где имеется математическая капча http://f0005424.xsph.ru/landing/index.php. Сообщения с формы...

Обеспечить надежность программы (защита от ввода неверных символов)
Имеется программа, считающая сумму ряда х квадрат на отрезке от а до а. #include "studio.h" int main() { int a; ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru