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

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

1718
Замены для оператора switch в Python?

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

945
Почему переменные не могут быть объявлены в операторе switch?

Я всегда задавался вопросом: почему вы не можете объявлять переменные после метки регистра в операторе switch? В C ++ вы можете объявлять переменные практически везде (и объявление их близко к первому использованию, очевидно, хорошо), но следующее по-прежнему не будет работать: switch (val) { case...

768
Переключить оператор несколько случаев в JavaScript

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

582
Несколько случаев в выражении 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; } но я хотел бы сделать что-то вроде этого:...

365
Переключить оператор падения в C #?

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

331
Есть ли лучшая альтернатива, чем эта, чтобы «включить тип»?

Видя, что C # не может switchиспользоваться для типа (который, как я понял, не был добавлен в качестве особого случая, потому что isотношения означают, что caseможет применяться более одного отдельного элемента), есть ли лучший способ имитировать переключение на тип, отличный от этого? void...

315
Оператор Case с несколькими значениями в каждом блоке «когда»

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

296
Использование двух значений для одного оператора переключателя

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

276
Почему Java переключается на непрерывные целочисленные объекты, кажется, работает быстрее с добавленными случаями?

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

267
Можно ли использовать оператор instanceof в операторе switch?

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

265
Java: использование оператора switch с enum в подклассе

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

255
Должны ли операторы switch всегда содержать предложение по умолчанию?

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

242
Является ли «переключатель» быстрее, чем «если»?

Является ли 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() {...

230
Переключение оператора для больше / меньше чем

поэтому я хочу использовать оператор switch следующим образом: switch (scrollLeft) { case (<1000): //do stuff break; case (>1000 && <2000): //do stuff break; } Теперь я знаю, что любое из этих утверждений ( <1000) или ( >1000 && <2000) не будет работать (очевидно,...

227
Почему оператор switch нельзя применять к строкам?

Компилируя следующий код и получил ошибку type illegal. int main() { // Compilation error - switch expression of type illegal switch(std::string("raj")) { case"sda": } } Вы не можете использовать строку в switchили case. Зачем? Есть ли какое-нибудь решение, которое хорошо работает для поддержки...

219
Есть ли существенная разница между использованием if / else и switch-case в C #?

В чем польза / минус использования switchоператора по сравнению с if/elseC #. Я не могу представить, что есть такая большая разница, кроме, возможно, внешнего вида вашего кода. Есть ли какая-то причина, по которой результирующий IL или связанная с ним производительность во время выполнения будут...