Case / Switch
もう一つの条件式が case
です。case
は 値: 式
という形式の条件を複数持ちます。もし case
キーワードの後の式と条件の左側の値が一致すれば、その条件の右側の式が返されます。値としては ..=
のような範囲も指定できます。default
はそれ以外の条件が全て失敗したときに返される特別な条件です。case 式は常になんらかの値に評価される必要があるため default
は必須です。
module ModuleA {
let a: logic<10> = 1;
var b: logic<10>;
assign b = case a {
0 : 1,
1 : 2,
3..=5 : 4,
default: 5,
};
}
switch
は case
のもう一つの形式です。switch
は 式: 式
という形式を持ち、左側の式の評価結果が1の場合に、右側の式が返されます。
module ModuleA {
let a: logic<10> = 1;
var b: logic<10>;
assign b = switch {
a == 0 : 1,
a == 1 : 2,
a == 2 : 4,
default: 5,
};
}