Я хочу выполнить case 'b'
и case 'c'
для case 'a'
:
foo := 'a'
switch foo {
case 'a':
// execute both case 'b' and case 'c'
case 'b':
// only execute case 'b'
case 'c':
// only execute case 'c'
}
Я попытался выполнить case 'a'
в case 'b'
, а затем - через case 'b'
в case 'c'
if foo == 'a'
, однако условные операторы перехода не разрешены, и они будут вызывать ошибку "fallthrough statement out of place"
.
Эту проблему можно решить, скопировав код из обоих вариантов 'b'
и case 'c'
в case 'a'
, а также может быть решен с помощью других методов условного ветвления помимо операторов switch, однако мне интересно, есть ли решение этой проблемы с использованием операторов switch и без копирования кода между вариантами для достижения аналогичный результат.