# 错误(4781)
# 4781-1
# 错误信息
if 表达式 %1!s! 非法, true 分支不能为输出表达式.
# 产生原因
Modelica 语义规定输出表达式只能出现在等号 (=) 或赋值符号 (:=) 的左边, 而 if 表达式的 true/false 分支的类型必须兼容, 当 true 分支出现输出表达式时, 产生错误 4781.
# 解决方法
将输出表达式改为与等号左边变量兼容的类型.
# 示例
model _4781_1_IllegalIfExprTrueBranch
Real x;
Real y;
Real z;
equation
z = if x + y > 7 then (x, y) else 5; // Error: 4781
//z = if x + y > 7 then 0 else 5; // OK
end _4781_1_IllegalIfExprTrueBranch;
# 4781-2
# 错误信息
if 表达式 %1!s! 非法, false 分支不能为输出表达式.
# 产生原因
Modelica 语义规定输出表达式只能出现在等号 (=) 或赋值符号 (:=) 的左边, 而 if 表达式的 true/false 分支的类型必须兼容, 当 false 分支出现输出表达式时, 产生错误 4781.
# 解决方法
将输出表达式改为与等号左边变量兼容的类型.
# 示例
model _4781_2_IllegalIfExprFalseBranch
Real x;
Real y;
Real z;
equation
z = if x + y > 7 then 5 else (x, y); // Error: 4781
//z = if x + y > 7 then 5 else 0; // OK
end _4781_2_IllegalIfExprFalseBranch;