Dodawanie niespodzianki
Część sekcji Podstawy ścieżki Swift w Coddy. Lekcja 61 z 86.
Wyzwanie
ŁatwyW poprzedniej lekcji utworzyłeś pętlę, która wykonuje FizzBuzz od 1 do podanego limitu, używając stałych dzielników 3 i 5. Teraz dodaj urozmaicenie, umożliwiając dostosowywanie dzielników!
Zmodyfikuj funkcję fizzBuzz, aby przyjmowała dwa dodatkowe parametry określające niestandardowe dzielniki:
- Zaktualizuj sygnaturę funkcji do:
fizzBuzz(_ number: Int, fizzAt: Int = 3, buzzAt: Int = 5) -> String - Użyj
fizzAtzamiast 3 w sprawdzeniu dla "Fizz" - Użyj
buzzAtzamiast 5 w sprawdzeniu dla "Buzz" - Wartości domyślne sprawiają, że klasyczny FizzBuzz nadal działa, gdy dzielniki nie zostaną określone
Otrzymasz następujące dane wejściowe:
- Górny limit (liczba całkowita)
- Pierwszy dzielnik dla "Fizz" (liczba całkowita)
- Drugi dzielnik dla "Buzz" (liczba całkowita)
Zaktualizuj pętlę tak, aby dla każdej liczby przekazywała te niestandardowe dzielniki do funkcji.
Na przykład, jeśli dane wejściowe to 10, 2 i 3, wynikiem powinno być:
1
Fizz
Buzz
Fizz
5
FizzBuzz
7
Fizz
Buzz
FizzW tym przykładzie "Fizz" jest wyświetlane dla wielokrotności 2, "Buzz" dla wielokrotności 3, a "FizzBuzz" dla wielokrotności obu tych liczb (na przykład 6).
Jeśli dane wejściowe to 15, 3 i 5 (klasyczne dzielniki), wynikiem powinien być taki sam wynik jak w oryginalnym FizzBuzz:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzzSpróbuj swoich sił
func fizzBuzz(_ number: Int) -> String {
if number % 3 == 0 && number % 5 == 0 {
return "FizzBuzz"
} else if number % 3 == 0 {
return "Fizz"
} else if number % 5 == 0 {
return "Buzz"
} else {
return String(number)
}
}
// Read input
let limit = Int(readLine()!)!
// Loop from 1 to limit and print the result for each number
for number in 1...limit {
print(fizzBuzz(number))
}Wszystkie lekcje w sekcji Podstawy
4Operatory, część 1
Operatory arytmetyczneOperator moduloPrzypisanie złożonePodsumowanie — prosta matematykaOperatory porównania7Podstawowe wejście/wyjście
Funkcja printInterpolacja ciągów znakówWejście ReadLineKonwersja typówPowtórka – do 120Powtórka – prawda czy fałsz10Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneEtykiety argumentówPowtórka – funkcja SigmaPowtórka – funkcja walidującaWartości domyślne2Zmienne
let vs varAdnotacje typówLiczbyŁańcuch znakówWartość logicznaKonwencje nazewnictwaPodsumowanie – inicjalizacja zmiennych5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Powtórka – prosta logikaOperatory logiczne, część 3Operator trójargumentowy8Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych wejściowych11FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz3Typy opcjonalne
Czym są typy opcjonalneRozpakowywanie za pomocą if letGuard letOperator nil-coalescingPodsumowanie — bezpieczne rozpakowywanie6Podejmowanie decyzji
Instrukcja ifIf - ElsePowtórka – prosty kalkulatorInstrukcja switchSwitch z zakresami9Pętle
Pętla for-inPętla whilePętla repeat-whileInstrukcja breakInstrukcja continuePowtórzenie – silniaZakresy w pętlachPętla zagnieżdżonaPowtórzenie – dynamiczne dane wejściowePoćwicz samodzielnie: Edytor online Swift