# 错误(4405)

# 4405-1

# 错误信息

%1!s! 是实型离散变量, 但其没有在 when 中显式赋值.

# 产生原因

Modelica 语义规定离散时间变量即整型, 布尔型, 字符串型, 枚举型变量以及在 when 子句中赋值的实型变量; 如果给出的变量为实型离散的, 必须在 when 子句中赋值, 否则产生错误 4405.

# 解决方法

将实型离散变量在 when 子句中赋值.

# 示例

model Error_4405_1_RealDiscreteVarMustBeAssignedInWhen
  class A
    replaceable Real x;
    replaceable parameter Real y;
  end A;
  class B
    extends A(x = 2.0, y = 3);
  end B;
  B b(redeclare discrete Real y);
  algorithm
  //when (b.x > 0) then //Error:4405注释掉此句和end when 则报出4405
    b.y := 3;                        
  //end when;
end Error_4405_1_RealDiscreteVarMustBeAssignedInWhen;

# 4405-2

# 错误信息

不能用连续表达式对实型离散变量 %1!s! 赋值.

# 产生原因

使用连续表达式对实型离散变量赋值.