Villkorskedjning
Svep för att visa menyn
Vi kan använda nyckelordet else if för att definiera ett ytterligare villkor som utvärderas om det föregående villkoret inte är uppfyllt:
index.go
12345678910package main import "fmt" func main() { if (3 > 4) { fmt.Println("3 is greater than 4") } else if (3 > 2) { fmt.Println("3 is greater than 2") } }
I programmet ovan kontrolleras först uttrycket 3 > 4, vilket är false; därför fortsätter programmet till nästa sats (3 > 2) som definieras med nyckelordet else if. Nästa villkor är true, så utdata visar resultatet av det andra Println-anropet.
Vi kan lägga till så många ytterligare villkor som behövs med hjälp av else if-satser:
index.go
1234567891011121314package main import "fmt" func main() { if (3 > 4) { fmt.Println("3 is greater than 4") } else if (3 > 3) { fmt.Println("3 is greater than 3") } else if (3 > 2) { fmt.Println("3 is greater than 2") } else if (3 > 1) { fmt.Println("3 is greater than 1") } }
Det är viktigt att notera att ovanstående program endast skriver ut 3 is greater than 2, även om nästa villkor också är true. Detta visar att en if-else if-kedja slutar utvärdera villkor så snart den stöter på ett villkor som är true.
Denna process kallas för villkorskedjning eftersom vi i princip definierar villkor i en kedja med hjälp av nyckelorden if-else if.
Observera
I en villkorskedja exekveras endast ett kodblock, det som uppfyller villkoret, medan resten hoppas över.
Alternativt, istället för att kedja villkor med kombinationen if-else if, kan vi skriva varje villkor med separata if-satser. Denna metod ger dock ett annat resultat eftersom det inte längre är en enda kedja; det är en uppsättning separata villkor, och därför kommer exekveringen inte att avbrytas om ett eller flera villkor är uppfyllda:
index.go
1234567891011121314151617package main import "fmt" func main() { if (3 > 4) { fmt.Println("3 is greater than 4") } if (3 > 3) { fmt.Println("3 is greater than 3") } if (3 > 2) { fmt.Println("3 is greater than 2") } if (3 > 1) { fmt.Println("3 is greater than 1") } }
Hittills har vi, för enkelhetens skull, använt värden i booleska uttryck. Det är dock vanligare att använda variabler eller en kombination av variabler och värden i booleska uttryck:
index.go
123456789package main import "fmt" func main() { var value int = 10 if (value == 10) { fmt.Println("The variable has the expected value.") } }
I en villkorskedja kan vi använda nyckelordet else för att ange ett kodblock som ska köras om inget av villkoren i kedjan uppfylls:
index.go
12345678910111213package main import "fmt" func main() { var value int = 70 if (value < 50) { fmt.Println("The value is less than 50") } else if (value == 50) { fmt.Println("The value is equal to 50") } else { fmt.Println("The value is greater than 50") } }
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal