Вопросы с тегом «switch-statement»

В компьютерном программировании оператор switch, case, select или inspect - это тип механизма управления выбором, используемый для вызова определенных блоков кода на основе переменного содержимого.


30
Замены для оператора switch в Python?
Ответы на этот вопрос - работа сообщества . Отредактируйте существующие ответы, чтобы улучшить этот пост. В настоящее время он не принимает новые ответы или взаимодействия. Я хочу написать функцию в Python, которая возвращает различные фиксированные значения в зависимости от значения входного индекса. В других языках я бы использовал оператор switchили …


23
Почему переменные не могут быть объявлены в операторе switch?
Я всегда задавался вопросом: почему вы не можете объявлять переменные после метки регистра в операторе switch? В C ++ вы можете объявлять переменные практически везде (и объявление их близко к первому использованию, очевидно, хорошо), но следующее по-прежнему не будет работать: switch (val) { case VAL: // This won't work int …

21
Переключить оператор несколько случаев в JavaScript
Мне нужно несколько случаев в выражении switch в JavaScript, что-то вроде: switch (varName) { case "afshin", "saeed", "larry": alert('Hey'); break; default: alert('Default case'); break; } Как я могу это сделать? Если в JavaScript нет способа сделать что-то подобное, я хочу узнать альтернативное решение, которое также следует концепции DRY .

18
Несколько случаев в выражении switch
Есть ли способ пролистать несколько операторов без case value:повторения? Я знаю, что это работает: switch (value) { case 1: case 2: case 3: // Do some stuff break; case 4: case 5: case 6: // Do some different stuff break; default: // Default stuff break; } но я хотел бы …

14
Переключить оператор падения в C #?
Падение заявления переключателя - одна из моих личных главных причин любить switchпротив if/else ifконструкций. Пример в порядке здесь: static string NumberToWords(int number) { string[] numbers = new string[] { "", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; string[] tens = new string[] { "", "", "twenty", "thirty", …

30
Есть ли лучшая альтернатива, чем эта, чтобы «включить тип»?
Видя, что C # не может switchиспользоваться для типа (который, как я понял, не был добавлен в качестве особого случая, потому что isотношения означают, что caseможет применяться более одного отдельного элемента), есть ли лучший способ имитировать переключение на тип, отличный от этого? void Foo(object o) { if (o is A) …

3
Оператор Case с несколькими значениями в каждом блоке «когда»
Лучший способ описать то, что я ищу, это показать вам неудачный код, который я пробовал до сих пор: case car when ['honda', 'acura'].include?(car) # code when 'toyota' || 'lexus' # code end У меня есть около 4 или 5 различных whenситуаций, которые должны быть вызваны примерно 50 различными значениями car. …

11
Использование двух значений для одного оператора переключателя
В моем коде программа делает что-то в зависимости от текста, введенного пользователем. Мой код выглядит так: switch (name) { case text1: { //blah break; } case text2: { //blah break; } case text3: { //blah break; } case text4: { //blah break; } Впрочем, код внутри чехлов text1и text4тот же. …

4
Почему Java переключается на непрерывные целочисленные объекты, кажется, работает быстрее с добавленными случаями?
Я работаю над некоторым Java-кодом, который должен быть сильно оптимизирован, так как он будет работать в горячих функциях, которые вызываются во многих точках моей основной логики программы. Часть этого кода включает в себя умножение doubleпеременных 10на произвольные неотрицательные int exponents. Один быстрый способ (изменить: но не самый быстрый, см. Обновление …

23
Можно ли использовать оператор instanceof в операторе switch?
У меня есть вопрос об использовании регистра переключателя для instanceofобъекта: Например: моя проблема может быть воспроизведена на Java: if(this instanceof A) doA(); else if(this instanceof B) doB(); else if(this instanceof C) doC(): Как бы это было реализовано с помощью switch...case?

6
Java: использование оператора switch с enum в подклассе
Во-первых, я скажу, что я гораздо лучше знаком с перечислениями в C #, и кажется, что перечисления в Java - довольно беспорядок. Как вы можете видеть, я пытаюсь использовать оператор switch @ enums в моем следующем примере, но я всегда получаю ошибку, независимо от того, что я делаю. Я получаю …

21
Должны ли операторы switch всегда содержать предложение по умолчанию?
В одном из моих первых обзоров кода (некоторое время назад) мне сказали, что хорошей практикой является включение предложения по умолчанию во все операторы switch. Я недавно вспомнил этот совет, но не могу вспомнить, каково было оправдание. Это звучит довольно странно для меня сейчас. Есть ли разумная причина всегда включать оператор …

12
Является ли «переключатель» быстрее, чем «если»?
Является ли switchутверждение на самом деле быстрее, чем ifутверждение? Я запустил код ниже на x64 C ++ компиляторе Visual Studio 2010 с /Oxфлагом: #include <stdlib.h> #include <stdio.h> #include <time.h> #define MAX_COUNT (1 << 29) size_t counter = 0; size_t testSwitch() { clock_t start = clock(); size_t i; for (i = …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.