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

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

Восстановить пароль Регистрация
 
CovCek
 Аватар для CovCek
6 / 6 / 4
Регистрация: 23.05.2014
Сообщений: 184
30.06.2014, 16:13     Недопонимание с switch и выводом default #1
Задание: сделать так что бы при вводе целого числа (от 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
Посмотрите здесь:

C++ Недопонимание указателей
C++ Switch default и cin
ошибка cannot find default constructor C++
Возвращение значения из switch-default C++
C++ Недопонимание кода
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fast1kkk
29 / 29 / 10
Регистрация: 15.02.2014
Сообщений: 157
30.06.2014, 16:16     Недопонимание с switch и выводом default #2
CovCek, ошибка в цикле при вводе числа меньше 1 или больше 7 он просто не срабатывает
CovCek
 Аватар для 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
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,184
Завершенные тесты: 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;
}
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
Ответ Создать тему
Опции темы

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