توجد أنواع مختلفة من العبارات الشرطية في Bash:
- إذا البيان
- بيان if-else
- إذا .. أليف .. بيان آخر
- متداخلة
في هذه المقالة ، سنتعلم إحدى العبارات الشرطية وهي if ، elseif ، مع بعض الأمثلة. في العديد من اللغات الأخرى ، تتم كتابة elif كـ elseif أو if. يساعدنا بيان elif على اتخاذ القرارات من بين الخيارات المختلفة.
بناء جملة if، elseif، else هو:
لو <اختبار_تعبير>؛من ثم
<الأمر للتنفيذ>
أليف <اختبار_تعبير>؛من ثم
<الأمر للتنفيذ>
آخر
<الأمر للتنفيذ>
يكون
الكلمة الرئيسية if متبوعة بالشرط الذي تريد التحقق منه. في هذه العبارة الشرطية if-else-if ، يتم تقييم التعبيرات من أعلى إلى أسفل.
- يتبع ذلك من ثم كلمة رئيسية.
- بعد ذلك ، إذا تم تقييم التعبير إلى صحيح ، فسيتم تنفيذ العبارات المقابلة. إذا تم تقييم التعبيرات على خطأ ، فسيتم تنفيذ العبارة المقابلة داخل elif.
- إذا لم يكن أي من الشروط صحيحًا ، فسيتم تنفيذ العبارة الموجودة داخل else المحظورة.
مثال 1
يتم استخدام elif (وإلا إذا) لشروط if متعددة. في حالة حدوث خطأ في الشرط الأول ، تحقق من حالة أخرى. في المثال التالي ، نأخذ مدخلات من المستخدم ونعرض البيانات المقابلة.
- استخدم شرط if للتحقق مما إذا كانت العلامات أكبر أو تساوي 80. إذا تم تقييم الشرط على صحيح ، فسيتم طباعة ممتاز باستخدام أمر echo الموجود أسفل الكتلة.
- إذا تم تقييم الشرط الأول إلى خطأ ، فسيستخدم شرط elif للتحقق مما إذا كانت العلامات أكبر أو تساوي 70 ، وإذا تم تقييم هذا الشرط إلى 'صحيح' ، فسيتم طباعة 'جيد'.
- إذا لم يتم تقييم أي من الشروط المذكورة أعلاه إلى 'صحيح' ، فسوف ينتقل إلى الحالة 'else' ويطبع 'مُرضي'.
لو [ علامات دولار -يعطى 80 ]
من ثم
رما - طرد - قذف 'ممتاز'
أليف [ علامات دولار -يعطى 60 ]
من ثم
رما - طرد - قذف 'حسن'
آخر
رما - طرد - قذف 'مرض'
يكون
المثال 2:
على سبيل المثال ، نريد توثيق العلامات لدورة معينة. إجمالي العلامات هو 200 مع 100 درجة للاختبارات و 100 للواجبات. نريد عرض مجموع المهام والاختبارات مع التأكد من أن العدد الإجمالي لا يتجاوز 200.
- خذ الإدخال: quiz_marks و assignments_marks
- تأكد من عدم تجاوز أي من المدخلين الحد الأقصى للعلامات الممكنة لكل منهما ، أي 100 باستخدام الشرطين if و elif.
- إذا تجاوز أي من علامات الإدخال أو التخصيصات 100 ، قم بعرض رسالة تحذير باستخدام أمر الصدى.
- يرجى التحقق من علامات الإدخال للاختبار
- يرجى التحقق من علامات الإدخال للواجبات
- إذا لم يتطابق أي من الشروط المذكورة أعلاه ، أي أن أيا من العلامات لا تتجاوز 100 ، فانتقل إلى شرط else واعرض مجموع العلامات باستخدام أمر echo.
اقرأ -p 'أدخل العلامات النظرية:'quiz_marks
اقرأ -p أدخل العلامات العملية:الاحالات_العلامات
لو ((quiz_marks $ > خمسون))؛
من ثم
رما - طرد - قذف 'يرجى التحقق من علامات الإدخال للاختبار.'
أليف (($ الإحالات_العلامات > خمسون))؛
من ثم
رما - طرد - قذف 'يرجى التحقق من علامات الإدخال للواجبات.'
آخر
رما - طرد - قذف مجموع علاماتك: sum =$ ((quiz_marks + assignments_marks)) '
يكون
المثال 3:
لنأخذ مثالاً آخر لبرنامج حساب مصرفي نريد فيه الحصول على ثلاثة مخرجات منفصلة لثلاث حالات مختلفة:
- الرصيد أقل من صفر
- الرصيد صفر
- الرصيد فوق الصفر
على سبيل المثال ، في البرنامج التالي ، استخدم عبارات if و elif و else لعرض مخرجات مختلفة في سيناريوهات مختلفة:
- استخدم شرط if للتحقق مما إذا كان الرصيد أقل من صفر. إذا تم تقييم هذا الشرط على أنه صحيح ، فقم بعرض الرسالة باستخدام أمر echo: الرصيد أقل من صفر ، الرجاء إضافة المزيد من الأموال وإلا سيتم فرض غرامة عليك.
- إذا لم يتطابق الشرط أعلاه ، فاستخدم شرط elif للتحقق مما إذا كان الرصيد يساوي صفرًا. إذا كان التقييم صحيحًا ، اعرض الرسالة: الرصيد يساوي صفرًا ، يرجى إضافة أموال
- إذا لم يتطابق أي من الشروط المذكورة أعلاه ، فاستخدم شرط else لعرض: رصيدك أعلى من الصفر.
الرصيد=900
لو ((الرصيد< 0))؛من ثم
رما - طرد - قذف 'الرصيد أقل من صفر ، يرجى إضافة المزيد من الأموال وإلا سيتم فرض غرامة عليك'
أليف ((التوازن ==0))؛من ثم
رما - طرد - قذف 'الرصيد صفر ، يرجى إضافة أموال'
آخر
رما - طرد - قذف 'رصيدك فوق الصفر.'
يكون
من الأمثلة المذكورة أعلاه من العبارة الشرطية ، إذا ، elif ، وإلا ، يجب أن تكون قادرًا الآن على فهم كيفية عمل هذه العبارة الشرطية وأين يمكن استخدامها في سيناريوهات مختلفة. آمل أن تكون قد أحببت المقال.