Если вы говорите об операторах if-else в calculate()
, вы не можете заменить его непосредственно на оператор switch.Значения регистра в операторе switch должны быть константами времени компиляции (целые или перечисляемые значения).Кроме того, if-else здесь прекрасно отражает логику того, что вы пытаетесь сделать.
Вы могли бы вычислить «тестовое значение переключения» на основе состояний radio15, radio18 иradio20 (скажем, целое число от 0 до 8, основанное на восьми возможных комбинациях значений) и включите его, но я настоятельно рекомендую против такого подхода.Мало того, что это излишне усложнит и затуманивает логику происходящего, вы будете проклинать себя, если будете нуждаться в поддержке кода через шесть месяцев после того, как забудете хитрый трюк.