الأساسيات

الجمل الشرطية if و else و else if

الجملة الشرطية في لغة غو هي if , وصيغة استخدام الجملة الشرطية برمجياً هي كالاتي

if condition {
}

اذا كان الشرط condition محققاً (true) فسيتم تنفيذ الأكواد الموجودة بين القوسين المنعكفين { و }

وعلى عكس بعض لغات البرمجة, فإن القوسين المنعكفين { و } هما إجباريان دائماً ولو كان المحتوى هو سطر او تعليمة او امر واحد

  • جملة الشرط if و إلا else if

if condition {
} else if condition {
} else {
}

وهنا كما في باقي لغات البرمجة, فإن التأكد من صحة الشرط يبدأ بأول شرط في if وثم else if (وقد يكون هنالك عدد غير محدد من شروط else if), واذا لم يتحقق أي شرط مما سبق, فسيتم تنفيذ الموجود في else الاخيرة

ملاحظة: الصيغة الصحيحة هي else if وليس elseif كما في لغات برمجة اخرى, أي يرجى مراعاة الفراغ بين if و else.

مثال..
لنكتب برنامجاً صغيراً يتحقق فيما اذا كان العدد المدخل هو زوجي أو فردي ..

package main

import (
"fmt"
)

func main() {
num := 10
if num % 2 == 0 {
fmt.Println("the number is even")
} else {
fmt.Println("the number is odd")
}
}

في العبارة الاتية:

if num % 2 == 0

نتحقق من “باقي” ناتج قسمة العدد num على العدد 2, فإذا كان “باقي” القسمة يساوي صفر, فالعدد زوجي, وإلا فهو عدد فردي.

ويوجد شكل اخر للجملة الشرطية, وهو شكل اختياري حيث يمكننا تعيين قيمة متغير ما قبيل البدأ بعملية التحقق من جملة الشرط, وصيغته كالاتي

if statement; condition {
}

مثال..

package main

import (
"fmt"
)

func main() {
if num := 10; num % 2 == 0 {
fmt.Println(num,"is even")
} else {
fmt.Println(num,"is odd")
}
}

في المثال أعلاه, قمنا بتعيين قيمة المتغير num قبيل بدأ عمل الجملة الشرطية, ومتغير num في هذه الحالة يعمل فقط داخل جملة الشرط if-scope و else-scope
أي أننا اذا حاولنا أن نطبع او نعدل قيمة num من خارج الجملة الشرطية فسنحصل على خطأ .

– ملاحظة هامة: عند كتابة else , يجب مراعاة أن نكتبها مباشرة بعد القوس { , أي يجب عدم ترك أسطر فارغة بين else وبين الاقواس المنعكفة المرتبطة بها, فهذا غير مقبول في لغة غو, وسيتم شرح الاسباب التفصيلية في دروس لاحقة.

ملاحظة: يمكنك تشغيل أكواد وأمثلة لغة غو من خلال GoLang Playground أو GoPlay.Space .

نبذة عن الكاتب

Firas M. Darwish

Software Engineer, PHP/Laravel, C#, GoLang, founder of ArGoLang.com & others ..

شاركنا رأيك :)