我有一个程序,需要根据好几个条件来决定最后汇总(jtje)的算法,请问下面的程序有什么不妥之处吗,程序运行总是与实际不相符。
If 0 < jtzj <= 72 Then
staty = 1
jtje = jtsl * 1.3
End If
If 0 <= liji < 72 And 72 < jtzj <= 120 Then
staty = 2
jtje = (72 - liji) * 1 + (jtsl + liji - 72) * 2.2
End If
If 72 <= liji < 120 And 72 < jtzj <= 120 Then
staty = 3
jtje = jtsl * 2.2
End If
If 0 <= liji < 72 And jtzj > 120 Then
staty = 4
jtje = (72 - liji) * 1.3 + (120 - 72) * 2.2 + (liji + jtsl - 120) * 3
End If
If 72 <= liji < 120 And jtzj > 120 Then
staty = 5
jtje = (120 - liji) * 2.2 + (liji + jtsl - 120) * 3
End If
If liji > 120 Then
staty = 6
jtje = jtsl * 3
End If
我的mail是[email protected]
If 0 < jtzj <= 72 Then
staty = 1
jtje = jtsl * 1.3
End If
If 0 <= liji < 72 And 72 < jtzj <= 120 Then
staty = 2
jtje = (72 - liji) * 1 + (jtsl + liji - 72) * 2.2
End If
If 72 <= liji < 120 And 72 < jtzj <= 120 Then
staty = 3
jtje = jtsl * 2.2
End If
If 0 <= liji < 72 And jtzj > 120 Then
staty = 4
jtje = (72 - liji) * 1.3 + (120 - 72) * 2.2 + (liji + jtsl - 120) * 3
End If
If 72 <= liji < 120 And jtzj > 120 Then
staty = 5
jtje = (120 - liji) * 2.2 + (liji + jtsl - 120) * 3
End If
If liji > 120 Then
staty = 6
jtje = jtsl * 3
End If
我的mail是[email protected]
如If 0 <= liji < 72 And 72 < jtzj <= 120 Then
staty = 2
jtje = (72 - liji) * 1 + (jtsl + liji - 72) * 2.2
End If
这种语句根本不是程序里应该出现的东西
必须这样写:liji>=0 and liji<72
staty = 1
jtje = jtsl * 1.3
else if 0 <= liji < 72 And jtzj <= 120 Then
staty = 2
jtje = (72 - liji) * 1 + (jtsl + liji - 72) * 2.2
else If liji < 120 And jtzj <= 120 Then
staty = 3
jtje = jtsl * 2.2
else If 0 <= liji < 72 And jtzj > 120 Then
staty = 4
jtje = (72 - liji) * 1.3 + (120 - 72) * 2.2 + (liji + jtsl - 120) * 3
else if liji < 120 And jtzj > 120 Then
staty = 5
jtje = (120 - liji) * 2.2 + (liji + jtsl - 120) * 3
else If liji > 120 Then
staty = 6
jtje = jtsl * 3
End If
你用许多单个IF语句,前面把值改变了,你后边又肯定错
if then
...
elseif then
...
.
.
.
end if
elseif
....
....
...
...
else
endif
1<a<4
不是算法
如 if (a<b and b<c) then ……
等等。
最后就是自个小心再小心的分释条件了。我调程序时喜欢在一些不清楚的地方加上msgbox(a).
把要监视的a变量让msgbox给提示出来,msgbox作出提示时会自动停止程序的运行,非常适合程序调试。
可我也用了ELSEIF 的呀,程序就是得不到正确的结果
我再再看看,有好建议请大家多提