那么,
我的第一个问题。
是否可以仅使用“max”和“min”语句构建“If”语句?
我遇到的问题是我需要比较2个数字(A和B)并看看B> 1.1 x A.如果发生这种情况,我会选择B,如果没有,我选择A。
有什么想法吗?
答案 0 :(得分:1)
如果逻辑运算符接受非布尔值,则可以按如下方式执行:
n = Max(B - 1.1*A, 0)
output = Max(B*(n && n), A)
答案 1 :(得分:0)
if语句,无论是纯(顺序不变)逻辑还是程序逻辑,都只能用于布尔语句。这意味着真或假。 min或max函数返回一个数字,而不是true / false值。所以对你的问题的简短回答是否定的,不可能使用max和min返回值构建if语句。
现在,在您的问题的详细信息中,您可以更多地了解您想要的内容。然而,令人困惑的是最大值和最小值如何进入等式。 B> 1.1 * A不需要Max和Min处理,那么你使用Max和Min函数来到B和A吗?如果是这样,那么先简单处理它们,然后将它们插入到那个等式中。
因为"大于"和"小于"比较确实返回真/假值,你很幸运。只需在你的" if"声明。这是一些伪代码。
max1 = 25
max2 = 72
min1 = 95
min2 = 80
A = Max(max1,max2)
B = Min(min1,min2)
O = NULL
if B > 1.1 * A then
set O = B
else
set O = A
end if
如果if语句的输出是一个值,而不是命令,正如您所希望的那样,某些语言使用" elvis"操作员,使事情更漂亮。使用它,你只需写:
O = B > 1.1 * A ? B : A