select. T case. T0 do. B0 case. T1 do. B1 fcase. T2 do. B2 case. T3 do. B3 end.Производится последовательное сравнение результата R блока T с результатами Ri блоков Ti , совпадение приводит к выполнению блока Bi соответствующего case. или fcase. . Если совпадение было в case. , выполнение конструкции select. заканчивается. Если в fcase. , выполняется следующий блок B(i+1) (и далее, если он тоже в fcase.). Сравнение осуществляется как R e.&boxifopen Ri , где boxifopen=:<^:(L.=0:). Отсутствие Ti считается совпадением. |
f0=: 3 : 0
select. y
case. 1;2 do. 'one two'
case. 3 do. 'three'
case. 4;5 do. 'four five'
case. 6 do. 666
end.
)
f0&.> 1 2 3 4 5 6
+-------+-------+-----+---------+---------+---+
|one two|one two|three|four five|four five|666|
+-------+-------+-----+---------+---------+---+
(i.0 0) -: f0 7
1
f1=: 3 : 0
select. y
case. 'a' do. i.1
case. 'b' do. i.2
case. do. i.3
end.
)
f1&.> 'a' ; ('a';'b') ; 'b' ; 'x'
+-+-+---+-----+
|0|0|0 1|0 1 2|
+-+-+---+-----+
f2=: 3 : 0
t=. ''
select. y
case. 1 do. t=.t,'one '
fcase. 2 do. t=.t,'two '
case. 3 do. t=.t,'three '
fcase. 4 do. t=.t,'four '
end.
)
f2 1
one
f2 2
two three
f2 3
three
f2 4
four
'' -: f2 5
1