البرمجة

حل مشكلة ‘else’ دون ‘if’ في الشروط

بالنظر إلى الكود الذي قدمته، يبدو أن المشكلة تكمن في هندسة التنسيق الذي قمت به للشرطية (if-else). فعندما تستخدم الشرطية بدون إعادة تنسيقها بشكل صحيح، قد يؤدي ذلك إلى حدوث أخطاء مثلما حصل في حالتك.

تتمثل المشكلة الرئيسية في استخدامك لـ “if” لكل حالة دون استخدام “else if” بينها. وهذا يعني أن كل شرط “if” يتم تقييمه بشكل منفصل دون النظر إلى الحالات السابقة. عندما تستخدم “else” بعد “if” دون “else if” بينهما، فإن الجملة التي تأتي مع الـ “else” ستنفذ بغض النظر عن نتائج الشروط السابقة، وهذا ما يحدث في حالتك.

لحل هذه المشكلة، يجب عليك استخدام “else if” بدلاً من “if” للحالات السابقة، مما يعني أنه سيتم تقييم كل شرط بعد الأول وحتى يتم تنفيذ الشرط المطابق. لذلك، يجب تعديل كودك كما يلي:

cpp
int i, j; cout << "How many tests' scores you want to average; \n"; cin >> i; // Assuming i > 0 int test[i]; for (j = 0; j < i; j++) { if (j == 0) cout << "Enter the 1st score: \n"; else if (j == 1) cout << "Enter the 2nd score: \n"; else if (j == 2) cout << "Enter the 3rd score: \n"; else cout << "Enter the " << (j+1) << "th score: \n"; cin >> test[j]; }

بهذا التنسيق، ستتم مقارنة جميع الشروط المتتالية بعضها بعضاً، وستُنفذ الجملة المطابقة لأول شرط يتم تحقيقه. هذا سيحل مشكلتك ويمكنك تشغيل الكود بدون الحصول على الخطأ الذي تعاني منه.

المزيد من المعلومات

بالطبع، دعني أوضح المزيد حول الكود الذي قمت بتقديمه وكيف تم حل المشكلة:

في الكود الذي قدمته، كانت المشكلة تتعلق بطريقة تنسيق الشروط في الجملة التكرارية (loop). عند استخدامك لجمل الشرطية “if” متتالية بدون استخدام “else if”، فإن كل شرط منفصل يتم تقييمه بشكل مستقل دون مراعاة الشروط السابقة. وعند استخدام “else” دون “else if” بين الشروط، فإن الجملة المقابلة لـ “else” ستنفذ بغض النظر عن نتائج الشروط السابقة.

لحل هذه المشكلة، تم استبدال جميع الـ “if” بعبارة “else if” بعد الشرط الأول. هذا يعني أنه سيتم تقييم الشروط بالتسلسل، وسيتم تنفيذ الجملة المطابقة لأول شرط يتم تحقيقه، وستتجنب المشكلة التي كانت تحدث بسبب استخدام “else” بدون “else if”.

بهذه الطريقة، يتم تحسين التنظيم والتنسيق في الشروط، مما يجعل الكود أكثر وضوحاً وسهولة قراءة وفهم. وبهذا التصحيح، يمكنك تشغيل الكود بدون الحصول على الخطأ الذي كنت تواجهه.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!