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

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

Войти
Регистрация
Восстановить пароль
 
oinari
5 / 5 / 0
Регистрация: 18.10.2009
Сообщений: 69
#1

Загвоздка с оператором switch - C++

24.04.2010, 19:43. Просмотров 407. Ответов 5
Метки нет (Все метки)

Стоит MVS08, при вводе 5 сразу выходит из программы, а когда ошибочно, т.е. ввожу 8, он мне Error! Again the input..., ввожу 5, после этого, он продолжает работу (пишет done!) О.о
C++
1
2
3
4
5
6
7
    cin >> menu;
    switch(menu)
    {
        case 5 : exit(1);
        default : cout << "Error! Again the input...\n> "; cin >> menu;
    }
    cout << "\nDone!";

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2010, 19:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Загвоздка с оператором switch (C++):

Ошибка с оператором switch - C++
Добрый день! Я писала программу в VS2010, но потом появилась необходимость запустить программу в 2008. После запуска, она ругается на этот...

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

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

Работа с оператором Switch case - C++
В общем такая ситуация. Надо написать что-то типо магазина и при выборе товара он должен переносить его цену в переменную и предложить...

Работа с оператором switch в цикле - C++
сhar ch; cin.get(ch); switch(ch) { case 'a': cout &lt;&lt; &quot;one &quot; &lt;&lt; endl; break; case 'b': cout &lt;&lt; &quot; two&quot; &lt;&lt; endl; break; case...

Затруднения с условным оператором switch ( типы данных) - C++
Здравствуйте! Не могу понять, как сделать без ошибки &quot; Unit1.cpp(29): E2227 Extra parameter in call to sqrt(double)&quot;. Я понимаю, что n в...

5
neske
1501 / 868 / 84
Регистрация: 26.03.2010
Сообщений: 2,973
24.04.2010, 19:48 #2
А у вас switch как я понял, выполняется только один раз.
При вводе второй цифры, выдаст "Done!"
Ведь свич у вас не в цикле?
1
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.04.2010, 19:53 #3
Цитата Сообщение от oinari Посмотреть сообщение
Стоит MVS08, при вводе 5 сразу выходит из программы, а когда ошибочно, т.е. ввожу 8, он мне Error! Again the input..., ввожу 5, после этого, он продолжает работу (пишет done!) О.о
У Вас именно так и написана Ваша программа:
C++
1
2
3
4
5
6
7
        cin >> menu;
        switch(menu)
        {
                case 5 : exit(1);// если ввели сразу 5, то попали сюда и сразу выходите из программы
                default : cout << "Error! Again the input...\n> "; cin >> menu;// если сразу ввели любую другую цифру, то попали сюда. На экране появляется надпись: Error! Again the input... И сдесь же программа ждет ввода любого числа (не обязательно 5, любого).
        }
        cout << "\nDone!";// после ввода последнего любого числа, программа выведет Done! и закончится.
1
oinari
5 / 5 / 0
Регистрация: 18.10.2009
Сообщений: 69
24.04.2010, 20:10  [ТС] #4
Цитата Сообщение от neske Посмотреть сообщение
Ведь свич у вас не в цикле?
да, а как его оформить? while (menu!=5) или чему?

Добавлено через 12 минут
Работает *-* правильно ли?
C++
1
2
3
4
5
6
7
8
while (1) 
    {
        switch(menu)
        {
        case 5 : exit(1);
        default : cout << "Error! Again the input...\n> "; cin >> menu;
        }
    }
0
easybudda
Модератор
Эксперт CЭксперт С++
9664 / 5614 / 952
Регистрация: 25.07.2009
Сообщений: 10,778
24.04.2010, 20:12 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
...
int choise;
while (true){
  // тут бы пункты меню вывести
  cin >> choise;
  switch(choise){
    case 1:
      cout << "Selected first menu punct" << endl;
      break;
    case 2:
      cout << "Selected second menu punct" << endl;
      break;
    case 3:
      cout << "Good bye!" << endl;
      exit(0);
    default :
      cout << "Bad choise, try again!" << endl;
  }
}
...
1
oinari
5 / 5 / 0
Регистрация: 18.10.2009
Сообщений: 69
24.04.2010, 20:34  [ТС] #6
Всё, всем спасибо, работает.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2010, 20:34
Привет! Вот еще темы с ответами:

Задача с оператором switch: юзер вводит значение температуры и видит на экране совет о том как одеться - C++
Нужно написать программу с оператором switch в которой юзер вводит значение температуры и видит на экране совет о том как одеться.

Загвоздка С++ - C++
в общем Начнем с того что что рассмотрим простейшию Задачу) Короч написать прогу что бы выводило числа от 1 до 10 в столбик...ну Вот..и там...

Загвоздка - C++
Знаю что темы есть и бла-бла-бла ... Но у меня среда разработки Visual Studio , проблема вот в чем , текст чтобы русский вводился с клавы и...

Загвоздка с присвоением - C++
подскажите в чем загвоздка, а именно в условии не присваивает значение и его позицию #include &lt;iostream&gt; using namespace std; ...


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
24.04.2010, 20:34
Ответ Создать тему
Опции темы

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