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

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

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

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

24.04.2010, 19:43. Просмотров 385. Ответов 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!";
скрин 1
скрин 2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2010, 19:43     Загвоздка с оператором switch
Посмотрите здесь:

C++ Загвоздка С++
C++ Загвоздка с циклом for
C++ Простая загвоздка)
C++ Загвоздка
Загвоздка с присвоением C++
Загвоздка в значении переменной C++
Работа с оператором Switch case C++
Ошибка с оператором switch C++
C++ Работа с оператором switch в цикле
Задача с оператором switch: юзер вводит значение температуры и видит на экране совет о том как одеться C++
C++ Программа с оператором switch
Затруднения с условным оператором switch ( типы данных) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1463 / 830 / 69
Регистрация: 26.03.2010
Сообщений: 2,830
24.04.2010, 19:48     Загвоздка с оператором switch #2
А у вас switch как я понял, выполняется только один раз.
При вводе второй цифры, выдаст "Done!"
Ведь свич у вас не в цикле?
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.04.2010, 19:53     Загвоздка с оператором switch #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! и закончится.
oinari
5 / 5 / 0
Регистрация: 18.10.2009
Сообщений: 69
24.04.2010, 20:10  [ТС]     Загвоздка с оператором switch #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;
        }
    }
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
24.04.2010, 20:12     Загвоздка с оператором switch #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;
  }
}
...
oinari
5 / 5 / 0
Регистрация: 18.10.2009
Сообщений: 69
24.04.2010, 20:34  [ТС]     Загвоздка с оператором switch #6
Всё, всем спасибо, работает.
Yandex
Объявления
24.04.2010, 20:34     Загвоздка с оператором switch
Ответ Создать тему
Опции темы

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