Dela via


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 Trueutvärderas det övergripande uttrycket till True. Om något av uttrycken är Falseutvä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 Falsemå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 Truefortsä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.

Se även