Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Villkorskedjning | Styrstrukturer
Introduktion till Golang

bookVillkorskedjning

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

index.go

copy
12345678910
package 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

index.go

copy
1234567891011121314
package 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

index.go

copy
1234567891011121314151617
package 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

index.go

copy
123456789
package 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

index.go

copy
12345678910111213
package 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") } }
question mark

Vilka av raderna kommer att inkluderas i utdata?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you give an example of using variables in a conditional chain?

What happens if none of the conditions in the chain are true?

Can you explain the difference between using chained conditionals and separate if statements?

Awesome!

Completion rate improved to 1.96

bookVillkorskedjning

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

index.go

copy
12345678910
package 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

index.go

copy
1234567891011121314
package 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

index.go

copy
1234567891011121314151617
package 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

index.go

copy
123456789
package 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

index.go

copy
12345678910111213
package 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") } }
question mark

Vilka av raderna kommer att inkluderas i utdata?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3
some-alt