NemProgrammering.dk logo

Nested conditionals og SWITCH i SWIFT

Lav din egen app kursus » Nested conditionals og SWITCH i SWIFT # 4

Information om denne video

Underviser: Jeppe Borggaard Jørgensen   Video: 18:54   Lektion nr. 4 af 21

Tingene bliver altid lidt mere komplicerede når noget bliver “nested” altså “sat inde” i hinanden. Logikken i noget der bliver “nested” er den samme som hvis det ikke var “nested”, men det tager lidt tilvænning at nå til den konklusion.

Det anbefales faktisk, at man så vidt som muligt begrænser delen af nested if-sætninger. Man kan dog sjældent undgå dem helt, så derfor vil vi beskæftige os med dem i denne videolektion.

Øvelse

Genskab eksemplet med terningen, men lad nu programmet indeholde 2 terninger. Udbyg først din if-else sætning, og se hvor voldsomt det bliver med hele 12 scenarier.

Konverter derefter til en switch-sætning, og se hvor overskueligt det pludselig bliver.

 

 

Spørgsmål og kommentarer

Det er ikke muligt at skrive kommentarer / stille spørgsmål til dette indhold

  • Jonas F. siger:

    Kan en switch kun hjælpe med true/false værdier? Kunne godt tænke mig man kunne skrive !=, ==, <, , >=, men det giver fejl —> ‘<' is not a prefix unary operator

    Mit eksempel:

    case member3Pin:
    print(correctPin)
    switch enteredWithdraw {
    case == bankAccount:
    print(notEnoughMoney)
    case < bankAccount:
    print(youAreBroke)
    default:
    print(takeYourMoney)
    }
    default:
    print(wrongPin)

    Løsninger? Eller må man her ty til else if?

    1. Jeppe J. siger:

      Hej Jonas,

      Som hovedregel kan man ikke, og man må ty til else-if, men Swift har nogle nye måder at håndtere det på som du kan læse om her, ved at bruge en “where” betingelse https://stackoverflow.com/questions/31656642/lesser-than-or-greater-than-in-swift-switch-statement

  • Emad E. siger:

    Kan man forvente svar?

    1. Jeppe J. siger:

      Hej emad,

      Står lige med en kone der skal sættes igang med fødsel – så snart vi er på den anden side af det skal jeg nok give et uddybende svar, har ikke min mac på mig.

      Håber det ok.

    2. Jeppe J. siger:

      Hej igen – du må meget godt sende din fulde kode, så jeg kan se hvorfor den siger “will never be executed” – men at den siger at din variable ikke bliver mutated og du kan ændre fra let til const, betyder blot at du har lavet en variabel der aldrig skifter værdi, og at du derfor kunne erklære den som værende en konstant istedet for en let variabel.

  • Emad E. siger:

    Hej igen

    Jeg genstartede computeren også virkede det. Men nu når jeg prøver at sætte dice2 på siger den: variable ‘dice2’ was never mutated; consuder changing to let constant

    1. Emad E. siger:

      … og ud fra alle mine cases står der Will never be executed

  • Emad E. siger:

    Hej Jeppe

    Der kommer ikke noget resultat ud til hverken højre eller nedenunder. Nu har jeg prøvet at gøre det flere gange på nye playgrounds men der sker ikke noget.

    Jeg ved ikke helt hvordan jeg skal sende et screenshot?

  • Lasse K. siger:

    Hej Igen

    Jeg var lidt hurtigt hvad angik semikolon – hørte svaret i videoen følgende.

  • Lasse K. siger:

    Hej Jeppe

    Tak for god undervisning so far

    I denne video tilføjer du pludselig semikolon og parenteser ved dine “if’s” og “variabler” i modsætning til video 3 som handlede om if & else. Hvad er forskellen med og uden?

    derudover får jeg en gul fejlmelding når jeg laver den første ekstra variabel under første if som lyder sådan her:
    “variable ‘dice2’ was never mutated; consider changing to ‘let’ constant”

    Kan du forklare hvad jeg gør anderledes end dig siden den foreslår dette?