Запитання з тегом «switch-statement»

У комп'ютерному програмуванні оператор перемикання, випадку, вибору або перевірки - це тип механізму контролю вибору, який використовується для виклику конкретних блоків коду на основі змінного вмісту.


30
Заміни для оператора switch в Python?
Відповіді на це запитання - це зусилля громади . Відредагуйте наявні відповіді, щоб покращити цю публікацію. Наразі не приймає нових відповідей чи взаємодій. Я хочу написати функцію в Python, яка повертає різні фіксовані значення на основі значення вхідного індексу. В інших мовах я б використовував a switchабо caseоператор, але, схоже, …


23
Чому змінні не можуть бути оголошені в операторі перемикача?
Я завжди цікавився цим питанням - чому ви не можете оголосити змінні після мітки справи в операторі перемикача? У C ++ ви можете декларувати змінні в будь-якому місці (і оголосити їх близько до першого використання, очевидно, це добре), але наступне все одно не буде працювати: switch (val) { case VAL: …

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

18
Кілька випадків у операторі комутатора
Чи є спосіб проникнути через декілька заяв про випадки без зазначення 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 …

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[] { "", "", …

30
Чи є краща альтернатива, ніж ця, для "переключення на тип"?
Бачачи, що C # не може switchвикористовувати тип (який я зібрав, не було додано як окремий випадок, оскільки isвідносини означають, що caseможе застосовуватися більше одного чіткого ), чи є кращий спосіб імітувати перемикання на тип, відмінний від цього? void Foo(object o) { if (o is A) { ((A)o).Hop(); } else …

3
Виписка з декількома значеннями в кожному блоці "коли"
Найкращий спосіб описати те, що я шукаю - показати вам невдалий код, який я намагався до цього часу: 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. Одним із швидких способів (відредагувати: але не найшвидше, див. Оновлення 2 нижче) …

23
Чи можливо використовувати оператор instanceof в операторі комутатора?
У мене виникло питання використання корпусу комутатора для instanceofоб'єкта: Наприклад: мою проблему можна відтворити на Java: if(this instanceof A) doA(); else if(this instanceof B) doB(); else if(this instanceof C) doC(): Як це було б реалізовано за допомогою switch...case?

6
Java: використання оператора переключення з перерахунком під підкласом
Спершу зазначу, що я набагато більше знайомий із перерахунками в C #, і здається, що перерахунки в Java - це зовсім безлад. Як ви бачите, я намагаюсь у своєму наступному прикладі використовувати оператор переключення @ перераховує, але я завжди отримую помилку незалежно від того, що я роблю. Я отримую помилку: …

21
Чи повинні оператори перемикання завжди містити за замовчуванням застереження?
В одному з моїх перших оглядів коду (деякий час назад) мені сказали, що в усіх операторах переключення є доброю практикою включити за замовчуванням. Нещодавно я згадав цю пораду, але не можу пригадати, яке виправдання було. Зараз це звучить для мене досить дивно. Чи є розумна причина завжди включати заявку за …

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 = 0; i < …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.