Short-circuit evaluation: Difference between revisions

Content added Content deleted
Line 4,111: Line 4,111:
a: Waar = x
a: Waar = x
a: Waar = x</pre>
a: Waar = x</pre>
=={{header|Visual Basic .NET}}==
{{trans|c++}}
<lang vbnet>Module Module1

Function A(v As Boolean) As Boolean
Console.WriteLine("a")
Return v
End Function

Function B(v As Boolean) As Boolean
Console.WriteLine("b")
Return v
End Function

Sub Test(i As Boolean, j As Boolean)
Console.WriteLine("{0} and {1} = {2} (eager evaluation)", i, j, A(i) And B(j))
Console.WriteLine("{0} or {1} = {2} (eager evaluation)", i, j, A(i) Or B(j))
Console.WriteLine("{0} and {1} = {2} (lazy evaluation)", i, j, A(i) AndAlso B(j))
Console.WriteLine("{0} or {1} = {2} (lazy evaluation)", i, j, A(i) OrElse B(j))

Console.WriteLine()
End Sub

Sub Main()
Test(False, False)
Test(False, True)
Test(True, False)
Test(True, True)
End Sub

End Module</lang>
{{out}}
<pre>a
b
False and False = False (eager evaluation)
a
b
False or False = False (eager evaluation)
a
False and False = False (lazy evaluation)
a
b
False or False = False (lazy evaluation)

a
b
False and True = False (eager evaluation)
a
b
False or True = True (eager evaluation)
a
False and True = False (lazy evaluation)
a
b
False or True = True (lazy evaluation)

a
b
True and False = False (eager evaluation)
a
b
True or False = True (eager evaluation)
a
b
True and False = False (lazy evaluation)
a
True or False = True (lazy evaluation)

a
b
True and True = True (eager evaluation)
a
b
True or True = True (eager evaluation)
a
b
True and True = True (lazy evaluation)
a
True or True = True (lazy evaluation)</pre>

=={{header|Visual FoxPro}}==
=={{header|Visual FoxPro}}==
<lang vfp>
<lang vfp>