Swift Academy · Lektion

Sammansatta fall och fallthrough

Kombinera fall och använd fallthrough medvetet.

Lektion 4 av 413 steg

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")
}
Gratis att börja

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

  1. Uttömmande switch över värden
  2. Matcha intervall och tupler
  3. Värdebindning och where-satser
  4. Sammansatta fall och fallthrough
← Tillbaka till Swift Academy