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

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

Войти
Регистрация
Восстановить пароль
 
CovCek
6 / 6 / 4
Регистрация: 23.05.2014
Сообщений: 184
#1

Недопонимание с switch и выводом default - C++

30.06.2014, 16:13. Просмотров 270. Ответов 5
Метки нет (Все метки)

Задание: сделать так что бы при вводе целого числа (от 1 до 7 которые соответствует дням недели, 1- понедельник, 2 -вторник и т.д.) печаталось название дня недели. в случае неправильного ввода вывести сообщение об ошибки.


Вот мой код:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include<stdio.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    char choice;
    do
    {
        cout << "Введите число дня недели от 1 до 7:";
        cin >> choice;
    } while (choice < '1' || choice > '7');
    cout << "\n\n";
    switch (choice){
    case '1':
        cout << "Понедельник.\n\n";
        break;
    case '2':
        cout << "Вторник.\n\n";
        break;
    case '3':
        cout << "Среда.\n\n";
        break;
    case '4':
        cout << "Четверг.\n\n";
        break;
    case '5':
        cout << "Пятница.\n\n";
        break;
    case '6':
        cout << "Суббота.\n\n";
        break;
    case '7':
        cout << "Воскресенье.\n\n";
        break;
    default:
        cout << "Введено неверное число дня недели. Будьте внимательны.\n\n";
        break;
    }
    system("pause");
    return 0;
}
Дело в том, что при вводе неправильного значения не выводится сообщение об ошибки.
Где ошибка, подскажите.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2014, 16:13     Недопонимание с switch и выводом default
Посмотрите здесь:

Switch default и cin - C++
Проблема в следующем: Если в case есть cin то после завершения кейса выбирается default, как избежать этого? int i; ...

Оператор Switch - default - C++
У меня есть якобы такой код на С++ Builder`e. Я сделал к каждому сase свою формулу. в ListBoxe у меня есть 4 строчка, где должен быть...

Возвращение значения из switch-default - C++
Здравствуйте! У меня задача на создание двох фунций, которые вычисляют среднее значение двух и трех чисел соответственно. Все это я сделал....

В операторе switch всегда срабатывает default - C++
Привет всем, вот такая проблема ввожу указанные в case буквы, в любом случий срабатывает default, почему так? #define WINVER 0x0501 ...

Для чего нужны break и default в switch - C++
что означает строка break и default в codeblocks? пример: #include using namespace std; int main() {

Неполадка с default в switch-case - вывод срабатывает дважды - C++
Здравствуйте! Такая вот ерундовая проблема, но хотелось бы узнать почему происходит именно так =) Есть функция, проверяющая...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fast1kkk
29 / 29 / 10
Регистрация: 15.02.2014
Сообщений: 157
30.06.2014, 16:16     Недопонимание с switch и выводом default #2
CovCek, ошибка в цикле при вводе числа меньше 1 или больше 7 он просто не срабатывает
CovCek
6 / 6 / 4
Регистрация: 23.05.2014
Сообщений: 184
30.06.2014, 16:18  [ТС]     Недопонимание с switch и выводом default #3
А как исправить?
fast1kkk
29 / 29 / 10
Регистрация: 15.02.2014
Сообщений: 157
30.06.2014, 16:21     Недопонимание с switch и выводом default #4
Сделайте условие while(true) бесконечно либо while ( choice='exit') то при вводе exit будет выход из цикла.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,186
Завершенные тесты: 1
30.06.2014, 16:26     Недопонимание с switch и выводом default #5
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
int main()
{
    setlocale(LC_ALL, "Russian");
    unsigned char choice;
    do
    {
        cout << "Введите число дня недели от 1 до 7:";
        cin >> choice;
        if(choice < '1' || choice > '7')
                 cout << "Введено неверное число дня недели. Будьте внимательны.\n\n";
     } while (choice < '1' || choice > '7');
    cout << "\n\n";
    switch (choice){
    case '1':
        cout << "Понедельник.\n\n";
        break;
    case '2':
        cout << "Вторник.\n\n";
        break;
    case '3':
        cout << "Среда.\n\n";
        break;
    case '4':
        cout << "Четверг.\n\n";
        break;
    case '5':
        cout << "Пятница.\n\n";
        break;
    case '6':
        cout << "Суббота.\n\n";
        break;
    case '7':
        cout << "Воскресенье.\n\n";
        break;
    //default: // не бывает такого
    //    cout << "Введено неверное число дня недели. Будьте внимательны.\n\n";
    //    break;
    }
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2014, 16:29     Недопонимание с switch и выводом default
Еще ссылки по теме:

Недопонимание указателей - C++
Уже прошёл их по книжке давно, но они частенько встречаются, и я никак не могу понять некоторые процессы с ними. Допустим есть в классе...

Недопонимание кода - C++
Я разбираю некоторый код С++ (Сразу скажу, что учил с++ самостоятельно, не супер профи) и там есть некоторые строчки, которые я не до конца...

Будоражащее недопонимание цикла - C++
#include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; class Data { public: char f; char l ; ...

Default copy constructor - C++
Что default copy constructor делает, из-за чего мой NRVO выводит разные адресса, если оставить его по умолчанию. А если переопределить...


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

Или воспользуйтесь поиском по форуму:
fast1kkk
29 / 29 / 10
Регистрация: 15.02.2014
Сообщений: 157
30.06.2014, 16:29     Недопонимание с switch и выводом default #6
zss, потом будет выход из цикла
Yandex
Объявления
30.06.2014, 16:29     Недопонимание с switch и выводом default
Ответ Создать тему
Опции темы

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