Цикл(ы) в switch case

175
13 февраля 2018, 05:06
    for (int a = 0; a < 10; a++)
{
    for (int b = 0; b < 10; b++)
    {
        for (int c = 0; c < 10; c++)
        {
            for (int d = 0; d < 10; d++)
            {
                int num = a * 1000 + b * 100 + c * 10 + d;
                string mystroka = num.ToString("D4");
                Console.WriteLine(mystroka);
                switch (num)
                {
                    case 12:
                        a = 0;
                        b = 0;
                        c = 9;
                        d = 9;
                        break;
                    case 193:
                        a = 0;
                        b = 1;
                        c = 9;
                        d = 9;
                        break;
                    case 202:
                        a = 0;
                        b = 2;
                        c = 9;
                        d = 9;
                        break;
                    default:                            
                        break;
                }
            }
        }
    }
}

как переделать эту часть, чтобы было бы вот так: switch (num)

    {
                        case 12:
                            a = 0;
                            b = 0&&b=1&&b=2; //остальное аналогично
                            c = 9;
                            d = 9;
                            break;
                        default:                            
                            break;
                    }

Цикл прописать как-то для b, чтобы не писать энтое кол-ство кейсов..

Answer 1

Кажется, я начинаю понимать, что вам нужно. НО

  1. Вы определенно все больше и больше запутываете код. Так никто не делает. Если интерес чисто академический, то ок. Если практический - то мой пример ниже будет только вреден.
  2. Если вам нужна короткая форма записи, то смотрите ответы в вашем предыдущем вопросе. Ниже не короткая форма.

Итак, я понял так, что вы не хотите в каждом кейсе дублировать работу. Вы можете сделать так:

for (int a = 0; a < 10; a++)
{
    for (int b = 0; b < 10; b++)
    {
        for (int c = 0; c < 10; c++)
        {
            for (int d = 0; d < 10; d++)
            {
                int num = a * 1000 + b * 100 + c * 10 + d;
                string mystroka = num.ToString("D4");
                Console.WriteLine(mystroka);
                bool matched = false;
                switch (num)
                {
                    case 12:                            
                        b = 0;                          
                        matched = true;
                        break;
                    case 193:                           
                        b = 1;
                        matched = true;                         
                        break;
                    case 202:                           
                        b = 2;
                        matched = true;                                                     
                        break;
                    default:
                        break;
                }
                if (matched)
                {
                    a = 0;                      
                    c = 9;
                    d = 9;
                }
            }
        }
    }
}

Теперь в кейсах вы меняете только b и флаг. Кейсы стали чуть короче, вся программа выросла на 2 строчки.

READ ALSO
выход из команды &ldquo;node node_modules/webpack/bin/webpack.js --env.prod&rdquo; с кодом 2

выход из команды “node node_modules/webpack/bin/webpack.js --env.prod” с кодом 2

Чтобы я не делал у меня не получается опубликовать приложениеРаботаю в Visual Studio 2017, использовал встроенный шаблон Angular

323
Доступ между формами в C# [требует правки]

Доступ между формами в C# [требует правки]

Как организовать доступ между двумя формами в C#, не нарушая инкапуляцию?

168
Циклический алгоритм в Console C# [требует правки]

Циклический алгоритм в Console C# [требует правки]

Помогите сделать циклический алгоритм на C# Console

191
Как обработать событие в другом потоке?

Как обработать событие в другом потоке?

Есть объект у закрытой библиотеке, на событие которого я подписываюсь, но оно возникает в основном потокеИ поэтому я не могу использовать...

154