Что-то вроде switch(a,b,c)
невозможно.
Если все значения одинаковы, просто используйте одно из значений, чтобы убедиться, что все значения совпадают).
Однако существуют Обходные пути, если вы хотите switch
- case
с несколькими числами:
математическое решение
Например, вы можете использовать простые числа для этого. Поскольку вам нужно только набрать switch
чисел, это возможно, если простое число больше, чем максимальное ожидаемое значение (для attend
, prime
и job
).
Вместо switch(attend, job, initiative)
, вы используете switch((attend*prime+job)*prime+initiative)
и вместо case (exampleAttend, exampleJob, exampleInitiative):
, вы используете case ((exampleAttend*prime+exampleJob)*prime+exampleInitiative):
Обратите внимание, что prime
должно быть одинаковым в операторах switch
и case
.
Обратите внимание, что вы должны проверить, является ли какое-либо из входных чисел больше, чем простое число. Это логически может привести к случаю по умолчанию, но может привести к коллизиям.
Возможно, вы также захотите убедиться, что простое число в четвертой степени меньше максимального значения типа данных или могут быть переполнения .
С другой стороны, этот метод должен быть более быстродействующим, чем второй.
простая конкатенация строк
Другой вариант - работа со строками. Поскольку строковое представление числа является уникальным (для числа) и не содержит некоторых символов (например, пробелов), вы можете объединить эти числа и использовать такой символ для их разделения.
Вместо switch(attend, job, initiative)
, вы используете switch(attend+" "+job+" "+initiative)
и вместо case (exampleAttend,exampleJob,exampleInitiative):
, вы используете case (exampleAttend+" "+exampleJob+" "+exampleInitiative):
.
Это, очевидно, проще и безопаснее, чем первый метод с простыми числами, но должно быть влияние на производительность как конкатенация Строки медленнее, чем умножение целых чисел.
Другая возможность - использовать перечисления. Посмотрите на другой ответ от @ Hassam Abdelillah , если вы хотите узнать, как это работает. Если вам нравится подход enum, не стесняйтесь высказать другой ответ.