التكرار باستخدام For Loop
جزء من قسم Logic & Flow في رحلة C++ على Coddy. الدرس 14 من 56.
الآن بعد أن عرفت كيفية الوصول إلى العناصر الفردية والتحقق من حجم المتجه، لنتعلم كيفية معالجة كل عنصر بشكل منهجي باستخدام حلقة for تقليدية. يجمع هذا الأسلوب بين طريقة .size() والوصول القائم على الفهرس لزيارة كل عنصر بالتسلسل.
تستخدم حلقة for تقليدية متغير فهرس يبدأ من 0 ويزداد حتى يصل إلى حجم vector:
std::vector<std::string> names = {"Alice", "Bob", "Charlie"};
for (int i = 0; i < names.size(); i++) {
std::cout << names[i] << std::endl;
}في هذا المثال، يضمن شرط loop i < names.size() ألّا نتجاوز حدود vector، بينما تصل names[i] إلى كل عنصر باستخدام الفهرس الحالي. سيطبع loop كل اسم في سطر منفصل.
هذا النمط أساسي لمعالجة مجموعات البيانات. يمنحك متغير الفهرس i تحكمًا دقيقًا في العنصر الذي تعمل عليه، مما يجعله مفيدًا عندما تحتاج إلى معرفة موضع كل عنصر أو عندما تريد تعديل العناصر أثناء التكرار.
لاحظ أنه بعد انتهاء الحلقة، يساوي i القيمة names.size() — في هذه الحالة، 3 — لأن الحلقة تتوقف بمجرد أن يصبح الشرط i < names.size() غير صحيح.
التحدي
سهلCreate برنامجًا يستخدم traditional for loop لـ iterate through vector من product names وعرضها بتنسيق قائمة مرقمة.
سيتم توفير المدخلات التالية:
- عدد صحيح
nيمثل number من products - ثم
nمن string التي تمثل product names
يجب أن يقوم برنامجك بما يلي:
- Create
std::vector<std::string>باسمproducts - استخدم
push_back()لـ add كل product names وعددهاnإلى vector - استخدم traditional for loop مع متغير فهرس لـ iterate through vector
- في loop، استخدم الطريقة
.size()لشرط loop - استخدم معامل الأقواس المربعة
[]للوصول إلى كل عنصر حسب الفهرس - اطبع كل product مع position number الخاص به (بدءًا من 1) بالتنسيق المحدد
استخدم تنسيق الإخراج الدقيق التالي:
Product 1: [first product name]
Product 2: [second product name]
Product 3: [third product name]
...يجب أن يبدأ for loop بالفهرس 0، وأن يستخدم i < products.size() كشرط، وأن يزيد قيمة i في كل تكرار. عند الطباعة، أضف 1 إلى الفهرس لعرض position numbers بدءًا من 1.
جرّب بنفسك
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
// اقرأ عدد المنتجات
int n;
cin >> n;
// أنشئ vector لتخزين أسماء المنتجات
vector<string> products;
// اقرأ أسماء المنتجات وأضفها إلى الـ vector
for (int i = 0; i < n; i++) {
string product;
cin >> product;
products.push_back(product);
}
// TODO: اكتب الكود الخاص بك أدناه
// استخدم حلقة for تقليدية للتكرار عبر الـ vector
// واطبع كل منتج مع رقم موضعه
return 0;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المؤشرات والذاكرة
ما هو المؤشر؟معامل العنوان (Address-Of)معامل الوصول للقيمة (Dereference)المؤشرات الفارغة (Null Pointers)المؤشرات والمصفوفاتالذاكرة الديناميكية باستخدام 'new'تحرير الذاكرة باستخدام 'delete'مراجعة - تمارين على المؤشرات2المتجهات (المصفوفات الديناميكية)
مقدمة إلى std::vectorإنشاء Vectorإضافة العناصرالوصول إلى العناصرحجم الـ Vectorالتكرار باستخدام For Loopالـ Range-Based For Loopإزالة العناصرملخص - عمليات الـ Vectorتدرّب بنفسك: مترجم C++ عبر الإنترنت