Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 31.01.2016
Сообщений: 6
1

Не работает конструкция switch-case

07.02.2016, 17:09. Показов 3022. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Изучаю С# вторую неделю и не понимаю почему у меня не работает switch-case в коде.Возможно это не switch-case, а что-то другое, но не работает именно один из кейсов (58 строка ).
Логика очень проста:
1)quit=false
2) Пишу в case() если пользователь ввел 'q' : quit=true;
3) в цикле Do-while. Пишу в конце программы while(!quit) то есть если я ввожу 'q' в консоль цикл не должен выполняться и программа должна завершаться. Увы но цикл идет дальше.
Скриншот прилагается!
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace DZ_s_16_
{
    class Program
    {
        static void Main(string[] args)
        {
            int day = 0;
            bool quit = false;
            bool flag = false;
            Console.WriteLine("");
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Instruction");
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Write day of week 1 = Monday");
            Console.WriteLine("Write day of week 2 = Tuesday");
            Console.WriteLine("Write day of week 3 = Wednesday");
            Console.WriteLine("Write day of week 4 = Thursday");
            Console.WriteLine("Write day of week 5 = Friday");
            Console.WriteLine("Write day of week 6 = Saturday");
            Console.WriteLine("Write day of week 7 = Sunday");
            Console.WriteLine();
            Console.ForegroundColor = ConsoleColor.Blue;
            Console.WriteLine("If you wont to quit ,Please write 'q' and press Enter");
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine();
            do
            {
                try
                {
                    Console.Write("If you read instruction, Enter day of week : ");
                    day = int.Parse(Console.ReadLine());
                }
                catch
                {
                    flag = true;
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("\aPlease,Read Instruction");
                    Console.ForegroundColor = ConsoleColor.White;
                    
                }
                if (!flag)
                {
                    switch (day)
                    {
                        case 1: Console.WriteLine("Monday (Go work)"); break;
                        case 2: Console.WriteLine("Tuesday (Go work)"); break;
                        case 3: Console.WriteLine("Wednesday (Go work)"); break;
                        case 4: Console.WriteLine("Thursday (Go work)"); break;
                        case 5: Console.WriteLine("Friday (Go work)"); break;
                        case 6: Console.WriteLine("Saturday (Easy)"); break;
                        case 7: Console.WriteLine("Sunday (Easy)"); break;
                        case 'q': quit = true; break;
 
 
                        default:
                            {
                                Console.ForegroundColor = ConsoleColor.Red;
                                Console.WriteLine("\aPlease,Read Instruction");
                                Console.ForegroundColor = ConsoleColor.White;
                            }
                            break;
                    }
                }
                flag = false;
            }
            while (!quit);
        }
        
    }
}
Миниатюры
Не работает конструкция switch-case  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2016, 17:09
Ответы с готовыми решениями:

Как работает switch-case ?
Собственно когда-то читал, что некоторые компиляторы для си превращали switch-case в over9000...

Конструкция switch
Возможно ли сделать так, чтобы в case было любое значение, то есть, если есть какой-то текст, то...

Конструкция Switch и компоненты
Добрый вечер! У меня есть переменная string Col, которая отвечает за цвет. Нужно написать...

Оптимальная конструкция switch-case-while / while-switch-case
Имеется конструкция типа: switch() { case 1: while() { ... }

2
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
07.02.2016, 17:23 2
ThundeR,
здесь перемешались типы - int и char (1-7 это int, а 'q' - char).
К int привести прочитанный с клавиатуры символ 'q' вряд ли получится, проще все перевести в char:
C#
13
char day='0';
C#
37
day = char.Parse(Console.ReadLine());
C#
51
52
53
54
55
56
57
58
case '1': Console.WriteLine("Monday (Go work)"); break;
case '2': Console.WriteLine("Tuesday (Go work)"); break;
case '3': Console.WriteLine("Wednesday (Go work)"); break;
case '4': Console.WriteLine("Thursday (Go work)"); break;
case '5': Console.WriteLine("Friday (Go work)"); break;
case '6': Console.WriteLine("Saturday (Easy)"); break;
case '7': Console.WriteLine("Sunday (Easy)"); break;
case 'q': quit = true; break;
1
0 / 0 / 0
Регистрация: 31.01.2016
Сообщений: 6
07.02.2016, 17:26  [ТС] 3
Благодарю, исправил!
0
07.02.2016, 17:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2016, 17:26
Помогаю со студенческими работами здесь

Конструкция выбора switch-case
Доброго времени суток! Я разрабатываю графическое приложение и мне нужно получать события от...

Оптимизируется ли компилятором конструкция switch-case? Работа со строками через ID объекта или hash
Добрый вечер, 1) Определён ли порядок выбора switch (согласно стандарта кажись неопределён, но...

switch case с range не работает
сделал как тут в ответах...

Не корректно работает switch() case
Мне нужно сделать switch case строк не подскажите как это реализовать? switch(Values->Strings)) {...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru