Booleska uttryck (Visual Basic)
Ett booleskt uttryck är ett uttryck som utvärderas till värdet för den booleska datatypen: True
eller False
. Boolean
uttryck kan ha flera former. Det enklaste är den direkta jämförelsen av värdet för en Boolean
variabel till en Boolean
literal, som du ser i följande exempel.
If newCustomer = True Then
' Insert code to execute if newCustomer = True.
Else
' Insert code to execute if newCustomer = False.
End If
Två betydelser av = operatorn
Observera att tilldelningsuttrycket newCustomer = True
ser likadant ut som uttrycket i föregående exempel, men den utför en annan funktion och används på olika sätt. I föregående exempel representerar uttrycket newCustomer = True
ett booleskt värde och =
tecknet tolkas som en jämförelseoperator. I en fristående -instruktion =
tolkas tecknet som en tilldelningsoperator och tilldelar värdet till höger till variabeln till vänster. I följande exempel visas detta.
If newCustomer = True Then
newCustomer = False
End If
Mer information finns i Value Comparisons and Statements (Värdejämförelser och -instruktioner).
Jämförelseoperatörer
Jämförelseoperatorer som =
, <
, >
, <>
, <=
och >=
producerar booleska uttryck genom att jämföra uttrycket till vänster om operatorn med uttrycket till höger om operatorn och utvärdera resultatet som True
eller False
. I följande exempel visas detta.
42 < 81
Eftersom 42 är mindre än 81 utvärderas det booleska uttrycket i föregående exempel till True
. Mer information om den här typen av uttryck finns i Värdejämförelser.
Jämförelseoperatorer kombinerade med logiska operatorer
Jämförelseuttryck kan kombineras med logiska operatorer för att skapa mer komplexa booleska uttryck. I följande exempel visas användningen av jämförelseoperatorer tillsammans med en logisk operator.
x > y And x < 1000
I föregående exempel beror värdet för det övergripande uttrycket på värdena för uttrycken på varje sida av operatorn And
. Om båda uttrycken är True
utvärderas det övergripande uttrycket till True
. Om något av uttrycken är False
utvärderas hela uttrycket till False
.
Kortslutningsoperatorer
Logiska operatorer AndAlso
och OrElse
uppvisar beteende som kallas kortslutning. En kortslutningsoperator utvärderar den vänstra operanden först. Om den vänstra operanden avgör värdet för hela uttrycket fortsätter programkörningen utan att utvärdera det högra uttrycket. I följande exempel visas detta.
If 45 < 12 AndAlso testFunction(3) = 81 Then
' Add code to continue execution.
End If
I föregående exempel utvärderar operatorn det vänstra uttrycket, 45 < 12
. Eftersom det vänstra uttrycket utvärderas till False
måste hela det logiska uttrycket utvärderas till False
. Programkörning hoppar därmed över körningen av koden i If
blocket utan att utvärdera rätt uttryck, testFunction(3)
. Det här exemplet anropas testFunction()
inte eftersom det vänstra uttrycket förfalskar hela uttrycket.
Om det vänstra uttrycket i ett logiskt uttryck som använder OrElse
utvärderas till True
fortsätter körningen till nästa kodrad utan att utvärdera det högra uttrycket, eftersom det vänstra uttrycket redan har verifierat hela uttrycket.
Jämförelse med operatorer som inte är kortslutna
Båda sidor av den logiska operatorn utvärderas däremot när de logiska operatorerna And
och Or
används. I följande exempel visas detta.
If 45 < 12 And testFunction(3) = 81 Then
' Add code to continue execution.
End If
Föregående exempel anropar testFunction()
även om det vänstra uttrycket utvärderas till False
.
Parentesiska uttryck
Du kan använda parenteser för att styra ordningen på utvärderingen av booleska uttryck. Uttryck som omges av parenteser utvärderas först. För flera kapslingsnivåer ges prioritet till de mest djupt kapslade uttrycken. Inom parenteser fortsätter utvärderingen enligt reglerna för operatorprioritet. Mer information finns i Operatorprioret i Visual Basic.