Sammansatta fall och fallthrough
Kombinera fall och använd fallthrough medvetet.
Sammansatta fall och fallthrough är en gratis lektion i Swift Academy på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Swift Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Swift Academy innehåller totalt 4 lektioner.
Sammansatta fall
Ett enda fall kan matcha flera värden genom att skilja dem åt med kommatecken: case "a", "b":. All kod för de angivna värdena körs på samma sätt.
let letter = "a"
switch letter {
case "a", "e", "i", "o", "u":
print("Vowel")
default:
print("Consonant")
}Varför använda sammansatta fall
Sammansatta fall undviker att identiska kodblock dupliceras. De grupperar värden som ska hanteras på samma sätt.
let day = 6
switch day {
case 6, 7:
print("Weekend")
case 1, 2, 3, 4, 5:
print("Weekday")
default:
print("Invalid day")
}Sammansatta fall med intervall
Du kan blanda intervall och enskilda värden i ett och samma sammansatta fall.
let code = 204
switch code {
case 200, 201, 204:
print("Success")
case 400...499:
print("Client error")
default:
print("Other")
}Sammansatta fall och bindning
När du binder i ett sammansatt fall måste varje alternativ binda samma namn med samma typer.
let point = (0, 5)
switch point {
case (let v, 0), (0, let v):
print("On an axis at distance \(v)")
default:
print("Off the axes")
}Introduktion till fallthrough
Swift-fall går inte automatiskt vidare till nästa fall. Nyckelordet fallthrough tvingar körningen att fortsätta in i nästa fall.
let n = 1
switch n {
case 1:
print("one")
fallthrough
case 2:
print("two")
default:
print("done")
}Så fungerar fallthrough
fallthrough går ovillkorligen vidare till nästa falls kodblock; det kontrollerar inte villkoret för det fallet igen. Använd det medvetet.
let level = 3
switch level {
case 3:
print("Level 3 perks")
fallthrough
case 2:
print("Level 2 perks")
fallthrough
case 1:
print("Level 1 perks")
default:
break
}fallthrough ignorerar mönster
Eftersom fallthrough hoppar över kontrollen av nästa mönster får nästa fall inte vara beroende av att ett värde binds, eftersom koden då inte kompilerar.
let x = 10
switch x {
case 10:
print("ten")
fallthrough
default:
print("reached default")
}Sammansatta fall jämfört med fallthrough
Om samma kod ska köras för flera värden bör du föredra ett sammansatt fall. Spara fallthrough för beteenden som faktiskt ska fortsätta stegvis.
let grade = "B"
switch grade {
case "A", "B":
print("Passing")
default:
print("Other")
}Ackumulera med fallthrough
Fallthrough är användbart för kumulativa effekter, till exempel när du vill lista alla förmåner från en nivå och nedåt.
let tier = 2
var perks = [String]()
switch tier {
case 2:
perks.append("Premium")
fallthrough
case 1:
perks.append("Basic")
default:
break
}
print(perks)Kombinera båda
Du kan använda sammansatta fall och fallthrough i samma switch, där varje teknik passar bäst.
let n = 0
switch n {
case 0:
print("zero")
fallthrough
case 1, 2:
print("small")
default:
print("large")
}Anmärkning om läsbarhet
Fallthrough kan överraska läsare eftersom de flesta språk använder det som standard. Kommentera avsikten eller föredra sammansatta fall när det är möjligt.
let status = "warn"
switch status {
case "warn", "error":
print("Needs attention")
default:
print("OK")
}Snabbtest
Testa sammansatta fall och fallthrough.
Sammanfattning: Sammansatta fall och fallthrough
Använd kommaseparerade sammansatta case-grenar för att dela samma kropp mellan flera värden. Använd det explicita nyckelordet fallthrough endast när Ni avsiktligt vill att körningen ska fortsätta till nästa case-gren.
let n = 2
switch n {
case 1, 2: print("small")
default: print("big")
}Lär dig Swift med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 122
- Lektioner
- 409
Vanliga frågor
Är lektionen ”Sammansatta fall och fallthrough” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Swift Academy, inklusive ”Sammansatta fall och fallthrough”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Swift Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Sammansatta fall och fallthrough”?
Kombinera fall och använd fallthrough medvetet. Ni övar på Swift Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Swift Academy?
Du behöver inga förkunskaper. Utbildningen i Swift Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Sammansatta fall och fallthrough”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Swift Academy-lektionen?
Ja. Varje Swift Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Uttömmande switch över värden
- Matcha intervall och tupler
- Värdebindning och where-satser
- Sammansatta fall och fallthrough