MiniZinc 中的 Switch 语句
Switch statements in MiniZinc
在MiniZinc tutorial中,我注意到endif
关键字在一系列条件语句的末尾重复了很多次。是否可以在 MiniZinc 中编写 switch 语句来替代这种冗长的语法?
比如我想把这一系列的条件语句写得更简洁:
predicate examplePredicate(var int:x, int:s) =
if s == 1
% some code goes here
else if s == 2 then
% some code goes here
else if s == 3 then
% some code goes here
else if s == 4 then
% some code goes here
else
% some code goes here
endif endif endif endif;
不需要多个"endif"。您可以使用 "elseif" 而不是 "else if"。
predicate examplePredicate(var int:x, int:s) =
if s == 1
% some code goes here
elseif s == 2 then
% some code goes here
elseif s == 3 then
% some code goes here
elseif s == 4 then
% some code goes here
else
% some code goes here
endif;
注意:如果您想要(简单的)查找 table,您可以改用全局约束 "table"。有关示例,请参阅 MiniZinc 教程中的第 4.1.3 节。
在MiniZinc tutorial中,我注意到endif
关键字在一系列条件语句的末尾重复了很多次。是否可以在 MiniZinc 中编写 switch 语句来替代这种冗长的语法?
比如我想把这一系列的条件语句写得更简洁:
predicate examplePredicate(var int:x, int:s) =
if s == 1
% some code goes here
else if s == 2 then
% some code goes here
else if s == 3 then
% some code goes here
else if s == 4 then
% some code goes here
else
% some code goes here
endif endif endif endif;
不需要多个"endif"。您可以使用 "elseif" 而不是 "else if"。
predicate examplePredicate(var int:x, int:s) =
if s == 1
% some code goes here
elseif s == 2 then
% some code goes here
elseif s == 3 then
% some code goes here
elseif s == 4 then
% some code goes here
else
% some code goes here
endif;
注意:如果您想要(简单的)查找 table,您可以改用全局约束 "table"。有关示例,请参阅 MiniZinc 教程中的第 4.1.3 节。