If statement 如果语句不被视为布尔值?
我是一名学生,我的软件老师给了我们这个例子-If statement 如果语句不被视为布尔值?,if-statement,vb6,language-agnostic,pseudocode,If Statement,Vb6,Language Agnostic,Pseudocode,我是一名学生,我的软件老师给了我们这个例子- BEGIN IF first < second THEN display first,second ELSE display second,first ENDIF END 开始 如果第一次
BEGIN
IF first < second
THEN display first,second
ELSE
display second,first
ENDIF
END
开始
如果第一次<第二次
然后显示第一,第二
其他的
显示第二,第一
恩迪夫
结束
如果两个数字,第一个和第二个是相同的(比如说2,2),那么将采用ELSE路径,因为第一个谢谢。据我所知,
if(expression)
中的表达式总是计算为布尔值。至少在C、C++、PHP、java、.NET、Python、JavaScript……/P>中都是这样。
但在一些古老或使用较少的语言中,情况可能并非如此
对于VisualBasic,明确表示number
将计算为FALSE
也许他(以一种迂回的方式)在谈论浮点不精确性
评估2是否小于2应该没有问题
对于使用不精确表示法存储的某些数字,情况并非总是如此,例如:
Dim first As Double, second As Double
first = 0.3
second = 0.1 + 0.2
If first < second Then
Debug.Print first, "is less than", second
Else
Debug.Print "equal or greater"
End If
很明显,如果a是整数(不是小数),a让我给你一个c语言的例子。C编译器对浮点使用IEEE-754数字表示
取a=0.1273(存储在内存中为:0.1272999423027039)
取b=0.12和c=0.0073+b
现在,如果您选中,c
的确给他看一个VB的例子,或者其他一些易于访问的语言,比如javascriptI,我想不起来听过一种语言,如果if为false,ELSE不能保证。甚至VisualBasic。我想请他举个例子就好了他有没有提到短路评估?VisualBasic在默认情况下不这样做,而且它可能来自C风格的语言,这是非常出乎意料的。你能给我介绍一下这个吗@AntonGogolevSee好吧,我不认为这是一件平常的事。非常感谢。
> 9007199254740992 == 9007199254740993
< true