检查条件表达式的描述
检查 ID:mathworks.jmaab_v6.mp_0022
规范:mp_0022:描述条件表达式的方法
描述
检查条件表达式是否符合以下规范。
while
、if
和if-else
表达式的计算结果为单个逻辑值true
或false
。在
while
、if
、if-else
或switch
表达式的每一行中,二元运算符的数量不超过最大允许值。此条件适用于二元运算符。
如果
while
、if
、if-else
或switch
表达式包含逻辑运算符且在表达式中间有一个或多个换行符,则要满足以下条件之一。表达式中间的换行符出现在逻辑运算符之后。
表达式中间的换行符出现在逻辑运算符之前。
此条件适用于以下逻辑运算符:
&
、&&
、|
和||
。
此检查适用于以下目标组件:
Simulink® 中的 MATLAB Function 模块。
Stateflow® 图中的 MATLAB® 嵌入式函数。
Stateflow MATLAB 图中的状态、转移和真值表。
模型中引用的外部 MATLAB 文件。
此检查需要 Simulink Check™ 许可证。
检查参数化
此检查包含与 JMAAB 建模规范中指定的子 ID 对应的子检查。您可以使用模型顾问配置编辑器来指定要执行的子 ID(一个或多个)。
作为参考,JMAAB 建模标准组织建议使用的规范子 ID 为:
JMAAB - a、b、c1/c2
选择检查模型中引用的外部 .m 文件,以在分析中包括扩展名为 .m
的文件。默认情况下,该复选框处于选中状态。
在一行中二元运算符的数量框中输入一个值,以指定条件表达式每一行所允许的二元运算符的最大数量。默认值为 3。
结果和建议的操作
规范子 ID | 条件 | 建议的操作 |
---|---|---|
mp_0022_a:检查条件表达式的值 | 一个或多个 while 、if 或 if-else 表达式的计算结果不是单个逻辑值 true 或 false 。 | 重写 while 、if 和 if-else 表达式,使其计算结果为单个逻辑值 true 或 false 。 |
mp_0022_b:检查一行中二元运算符的数量 | 在一个或多个 while 、if 、if-else 或 switch 表达式的行中,二元运算符数量超过最大允许值。 | 将 while 、if 、if-else 或 switch 表达式每一行中二进制运算符的数量限制为一行中二元运算符的数量输入参数指定的值。 |
mp_0022_c1:检查复杂条件表达式的格式 | 一个或多个包含逻辑运算符的 表达式中的换行必须紧跟在逻辑运算符之后。 | 重写 while 、if 、if-else 和 switch 表达式,确保每个表达式中的换行符紧跟在逻辑运算符之后。 |
mp_0022_c2:检查复杂条件表达式的格式 | 一个或多个包含逻辑运算符的 表达式中的换行符必须出现在逻辑运算符之前。 | 重写 while 、if 、if-else 和 switch 表达式,确保每个表达式中的换行符都出现在逻辑运算符之前。 |
功能和限制
无法分析 Stateflow 图中的状态和转移。
无法分析条件表达式首行之后的代码是否缩进。默认情况下,MATLAB 启用缩进并设置缩进大小。要查看缩进大小,在主页选项卡的环境部分,点击预设项,然后导航至MATLAB > 编辑器/调试器 > Tab 键。在此,请检查缩进大小框中输入的值。
可以分析库链接模块的内容。默认情况下,输入参数 Follow links 设置为 on。这里,
可以分析封装子系统中的内容。默认情况下,输入参数 Look under masks 设置为 graphical。
无法在库模型上运行。
允许排除模块和图。