تعبيرات المقارنة (Comparison)

تعبيرات المقارنة (Comparison Expressions)

تعبيرات المقارنة هي نوع مهم من التعبيرات البرمجية يستخدم في المقارنة بين قيمتين، وتتشابه العلامات المستخدمة في تعبيرات المقارنة مع الرياضيات.

دائما ناتج تعبيرات المقارنة يكون قيمة منطقية (Boolean) يعني إما true أو false.
ﻷن بالمنطق الرد على سؤال هل القيمتين متساويتين يكون إما نعم أو ﻻ.

علامات المقارنة (Comparison Operators)

تسمى العلامات باﻹنجليزية Operators، يجب معرفتها ﻷنك ربما تستخدمها مستقبلاً...

العلامةاﻹستخداممثال على التعبير
==معرفة هل القيمتين متساويتين ؟5 == 5
!=معرفة هل القيمتين غير متساويتين ؟5 != 8
>معرفة هل القيمة اﻷولى أكبر من الثانية؟5 > 4
<معرفة هل القيمة اﻷولى أصغر من الثانية؟5 < 6
>=معرفة هل القيمة اﻷولى أكبر من أو تساوي الثانية؟5 >= 5
<=معرفة هل القيمة اﻷولى أقل من أو تساوي الثانية؟5 <= 4

انتبه: نستخدم علامتين يساوي == وليس علامة واحدة لمعرفة هل القيمتين متساويتين أم ﻻ وإن نسيت العلامة الثانية سيظهر لك خطأ من مفسر جافاسكريبت: Uncaught SyntaxError: Invalid left-hand side in assignment

العلامة المستخدمة في تعبير التساوي هي علامتين يساوي == وليست علامة واحدة ﻷن العلامة الواحدة تُستخدم في إرفاق قيمة للمتغير عند إنشاء متغير جديد كما ذكرنا في درس المتغيرات

ربما تختلف العلامات من لغة لأخرى، هناك لغات تستخدم العلامة الواحدة في المقارنة ... لكن أغلب اللغات ستكون العلامات فيها كما ذكرنا، وعموما نحن اﻵن نركز على المفهوم وفهمه وليس على الكتابة.

تعبيرات التساوي

علامة يساوي ==

يُستخدم في معرفة هل القيمتين متساويتين أم ﻻ، ويكون ناتج التعبير true عندما تكون القيمتان متساويتين، ويكون الناتج false عندما تكون القيمتان غير متساويتين

مثال:

console.log(5 == 4);
console.log(5 == 5);
ناتج التشغيل false
true

في المثال السابق وضعنا التعبير بين أقواس دالة الطباعة، وقد قلنا سابقاً أن قيمة الطباعة يمكن أن تكون تعبيراً أيضاً كطباعة تعبير حسابي مثلا.

علامة لا يساوي !=

هذا التعبير هو عكس تعبير التساوي... لذلك إن كانتا القيمتان متساويتين سيكون الناتج false أما إن كانتا غير متساويتين سيكون الناتج true ﻷن التعبير يعني لا يساوي.

العلامة ! في لغات البرمجة تعني ﻻ (not) لذلك علامة لا يساوي تُكتب هكذا !=

مثال:

console.log(5 != 4);
console.log(5 != 5);
ناتج التشغيل true
false

تعبيرات التساوي مع أنواع البيانات اﻷخرى

يمكن استخدام تعبيرات التساوي مع كل أنواع البيانات، فهي مهمة جداً في البرمجة وسيعتمد أي برنامج تقوم به على تعبيرات التساوي بشكل كبير جداً.

مقارنة النصوص (Strings)

يمكنك استخدامها مع النصوص Strings فيكون الناتج true إن كان النصان متساويين بكل شيء

:

console.log("dalilmobarmg" == "dalilmobarmg");
console.log("dalilmobarmg" == "test");
console.log("dalilmobarmg" != "test");
ناتج التشغيل true
false
true

أمر الطباعة الثالث ينتج عنه true ﻷن النص اﻷول لا يساوي النص الثاني، وقد استخدمنا علامة لا يساوي !=

الحرف الكبير (كابيتال) ﻻ يساوي الصغير: فإن كتبت نفس النصين لكن باختلاف أن اﻷولى بها حرف كبير والثانية بها نفس الحرف لكن صغير، سيكون الناتج false ﻷن الحاسوب يعتبر أن هذا حرف وذلك حرف آخر

console.log("test" == "Test");
ناتج التشغيل false

مقارنة القيم المنطقية (Boolean)

يمكن استخدام علامة == للمقارنة بين القيم المنطقية أيضاً

console.log(true == true);
console.log(true == false);
console.log(true != false);
ناتج التشغيل true
false
true

ناتج التعبير الثالث هو true ﻷننا استخدمنا علامة لا يساوي != وبالفعل القيمتان غير متساويتين.

تعبيرات أكبر من وأقل من

هي تعبيرات يمكنك عن طريقها مقارنة اﻷرقام حسب اﻷكبر واﻷقل.

علامة أكبر من >

يستخدم لمعرفة هل القيمة اﻷولى أكبر من الثانية أم ﻻ، بالتالي يكون الناتج true إن كانت القيمة اﻷولى أكبر من الثانية

إذا كانت العلامة مفتوحة ناحية اﻷكبر سيقوم المفسر بالرد true ... سواء كانت العلامة أكبر من أو أصغر من! اﻷهم أن العلامة تُشير إلى اﻷكبر..

مثال:

console.log(5 > 4);
console.log(5 > 6);
ناتج التشغيل true
false

التعبير اﻷول يكون ناتجه true ﻷن العلامة تشير إلى 5 وهي بالفعل أكبر من 4

علامة أقل من <

يستخدم لمعرفة هل القيمة اﻷولى أصغر من الثانية أم ﻻ، بالتالي يكون الناتج true إن كانت القيمة اﻷولى أصغر من الثانية.

مثال:

console.log(4 < 5);
console.log(4 < 3);
ناتج التشغيل true
false

التعبير اﻷول يكون ناتجه true ﻷن العلامة تشير إلى 5 وهي بالفعل أكبر من 4

علامة أكبر من أو يساوي

في التعبيرات السابقة يكون الناتج false إن كانتا القيمتان متساويتين، مثال: 5 > 5، ﻷنها ليست أكبر! لكن إن أردت أن تعرف هل القيمة اﻷولى أكبر من أو يساوي القيمة الثانية يمكنك استخدام العلامة >= حينها سيكون الناتج true إن كانت القيمة اﻷولى أكبر من الثانية أو تساويها!

مثال:

console.log(5 >= 4);
console.log(5 >= 5);
console.log(5 >= 6);
ناتج التشغيل true
true
false

ناتج التعبير اﻷول true ﻷن 5 أكبر من 4

ناتج التعبير الثاني true ﻷن 5 تساوي 5

ناتج التعبير الثالث false ﻷن 5 ليست أكبر من أو تساوي 6 بل هي أصغر منها.

نفس الطريقة السابقة يتم تطبيقها مع علامة أصغر من أو يساوي <=

يمكن أن يكون التعبير قيمة للمتغير

لقد اعتادت سابقاً على أن تكون قيمة المتغير نصاً مثلاً أو رقماً، أو أي نوع من أنواع البيانات، لكننا كنا ذكرنا في درس المتغيرات ملاحظة، ربما أنت قرأتها سريعاً ولا تتذكرها ﻷنك لم تطبق عليها، واﻵن جاء وقت التطبيق... المتغير يمكن أن تكون قيمته تعبير ﻷن التعبير ينتج عنه قيمة! وهذه القيمة تكون نوع من أنواع البيانات، حسب التعبير! فهناك تعبيرات ينتج عنها رقم كالتعبيرات الحسابية، أما هنا فتعبيرات المقارنة ينتج عنها قيم منطقية كما ذكرنا true أو false

مثال:

var result = 5 > 4;
console.log(result);
ناتج التشغيل true

ستجد الناتج true إذن قيمة المتغير اﻵن أصبحت true

عندما يمر المفسر على التعبير فإنه يقوم بتنفيذه وايجاد الناتج ووضعه كقيمة للمتغير، فيصبح المثال السابق كأنك كتبك var result = true

اﻵن نحن نستخدم التعبيرات في أمثلة نكتبها بنفسنا، فنقارن بين قيمتين نعرف ناتجهم لكن مستقبلاً ربما مثلاً نطلب من مستخدم البرنامج أن يقوم بإدخال رقمين لنقارن بينهم ونطبع الناتج true أم false... وسنجرب على هذه اﻷمثلة مستقبلاً!



سنستخدم تعبيرات المقارنة بكثرة في درس الشروط if ﻷن الشروط تعتمد بشكل كبير على تعبيرات المقارنة والقيم المنطقية، لذلك يُفضل أن تلقي نظرة على درس الشروط ولو حتى على أساسياته اﻵن...

المساهمين

وجدت خطأ أو تريد المساهمة في محتوى الدرس؟ عدل الصفحة على Github