הוספת הטוויסט
חלק מהיחידה יסודות במסלול ה-Swift של Coddy. שיעור 61 מתוך 86.
אתגר
קלבשיעור הקודם יצרת לולאה שמריצה את FizzBuzz מ-1 ועד גבול נתון, תוך שימוש במחלקים הקבועים 3 ו-5. עכשיו, הוסף את הטוויסט והפוך את המחלקים להתאמה אישית!
שנה את הפונקציה fizzBuzz כך שתקבל שני פרמטרים נוספים עבור המחלקים המותאמים אישית:
- עדכן את חתימת הפונקציה ל:
fizzBuzz(_ number: Int, fizzAt: Int = 3, buzzAt: Int = 5) -> String - השתמש ב-
fizzAtבמקום 3 בבדיקה של "Fizz" - השתמש ב-
buzzAtבמקום 5 בבדיקה של "Buzz" - ערכי ברירת המחדל מבטיחים ש-FizzBuzz הקלאסי עדיין יעבוד כאשר לא מציינים מחלקים
הקלטים הבאים יתקבלו:
- הגבול העליון (מספר שלם)
- המחלק הראשון עבור "Fizz" (מספר שלם)
- המחלק השני עבור "Buzz" (מספר שלם)
עדכן את הלולאה כך שתעביר את המחלקים המותאמים אישית האלה לפונקציה עבור כל מספר.
לדוגמה, אם הקלט הוא 10, 2 ו-3, הפלט צריך להיות:
1
Fizz
Buzz
Fizz
5
FizzBuzz
7
Fizz
Buzz
Fizzבדוגמה הזו, "Fizz" יודפס עבור כפולות של 2, "Buzz" עבור כפולות של 3, ו-"FizzBuzz" עבור כפולות של שניהם (כמו 6).
אם הקלט הוא 15, 3 ו-5 (המחלקים הקלאסיים), הפלט צריך להיות זהה לפלט המקורי של FizzBuzz:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzzנסו בעצמכם
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))
}כל השיעורים ביחידה יסודות
7קלט/פלט בסיסי
פונקציית ההדפסהאינטרפולציה של מחרוזותקלט באמצעות ReadLineהמרת טיפוסיםחזרה – עד 120חזרה – אמת או שקר3ערכים אופציונליים
מהם ערכים אופציונלייםשליפת ערך באמצעות If LetGuard Letאופרטור איחוד עם Nilסיכום – שליפה בטוחה של ערך9לולאות
לולאת For-Inלולאת Whileלולאת Repeat-WhileBreakContinueחזרה – עצרתטווחים בלולאותלולאה מקוננתחזרה – קלט דינמיתרגלו בעצמכם: Swift אונליין