إضافة اللمسة الإضافية
جزء من قسم الأساسيات في رحلة 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))
}جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةالإسناد المركبمراجعة - عمليات رياضية بسيطةمعاملات المقارنة7أساسيات الإدخال والإخراج
دالة الطباعةتضمين النصوصإدخال ReadLineتحويل الأنواعمراجعة - حتى 120مراجعة - True أو False10الدوال
تعريف دالةالمعاملات والوسائطقيم الإرجاعتسميات الوسائطمراجعة - دالة Sigmaمراجعة - دالة Validationالقيم الافتراضية2المتغيرات
Let مقابل Varتوصيف الأنواع (Type Annotations)الأرقامStringBooleanقواعد التسميةمراجعة - تهيئة المتغيرات5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعامل الثلاثي (Ternary Operator)8حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على المدخلات3القيم الاختيارية (Optionals)
ما هي القيم الاختياريةفك القيم باستخدام If Letاستخدام Guard Letمعامل دمج Nilمراجعة - فك القيم بأمان9حلقات التكرار
حلقة For-Inحلقة Whileحلقة Repeat-WhileBreakContinueمراجعة - المضروب (Factorial)النطاقات في حلقات التكرارالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)