تعبيرات المقارنة (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);
true
في المثال السابق وضعنا التعبير بين أقواس دالة الطباعة، وقد قلنا سابقاً أن قيمة الطباعة يمكن أن تكون تعبيراً أيضاً كطباعة تعبير حسابي مثلا.
!=
علامة لا يساوي هذا التعبير هو عكس تعبير التساوي... لذلك إن كانتا القيمتان متساويتين سيكون الناتج false
أما إن كانتا غير متساويتين سيكون الناتج true
ﻷن التعبير يعني لا يساوي.
العلامة !
في لغات البرمجة تعني ﻻ (not) لذلك علامة لا يساوي تُكتب هكذا !=
مثال:
console.log(5 != 4);
console.log(5 != 5);
false
تعبيرات التساوي مع أنواع البيانات اﻷخرى
يمكن استخدام تعبيرات التساوي مع كل أنواع البيانات، فهي مهمة جداً في البرمجة وسيعتمد أي برنامج تقوم به على تعبيرات التساوي بشكل كبير جداً.
مقارنة النصوص (Strings)
يمكنك استخدامها مع النصوص Strings فيكون الناتج true
إن كان النصان متساويين بكل شيء
:
console.log("dalilmobarmg" == "dalilmobarmg");
console.log("dalilmobarmg" == "test");
console.log("dalilmobarmg" != "test");
false
true
أمر الطباعة الثالث ينتج عنه
true
ﻷن النص اﻷول لا يساوي النص الثاني، وقد استخدمنا علامة لا يساوي!=
الحرف الكبير (كابيتال) ﻻ يساوي الصغير: فإن كتبت نفس النصين لكن باختلاف أن اﻷولى بها حرف كبير والثانية بها نفس الحرف لكن صغير، سيكون الناتج false
ﻷن الحاسوب يعتبر أن هذا حرف وذلك حرف آخر
console.log("test" == "Test");
مقارنة القيم المنطقية (Boolean)
يمكن استخدام علامة ==
للمقارنة بين القيم المنطقية أيضاً
console.log(true == true);
console.log(true == false);
console.log(true != false);
false
true
ناتج التعبير الثالث هو
true
ﻷننا استخدمنا علامة لا يساوي!=
وبالفعل القيمتان غير متساويتين.
تعبيرات أكبر من وأقل من
هي تعبيرات يمكنك عن طريقها مقارنة اﻷرقام حسب اﻷكبر واﻷقل.
>
علامة أكبر من يستخدم لمعرفة هل القيمة اﻷولى أكبر من الثانية أم ﻻ، بالتالي يكون الناتج true
إن كانت القيمة اﻷولى أكبر من الثانية
إذا كانت العلامة مفتوحة ناحية اﻷكبر سيقوم المفسر بالرد true
... سواء كانت العلامة أكبر من أو أصغر من! اﻷهم أن العلامة تُشير إلى اﻷكبر..
مثال:
console.log(5 > 4);
console.log(5 > 6);
false
التعبير اﻷول يكون ناتجه
true
ﻷن العلامة تشير إلى5
وهي بالفعل أكبر من4
<
علامة أقل من يستخدم لمعرفة هل القيمة اﻷولى أصغر من الثانية أم ﻻ، بالتالي يكون الناتج true
إن كانت القيمة اﻷولى أصغر من الثانية.
مثال:
console.log(4 < 5);
console.log(4 < 3);
false
التعبير اﻷول يكون ناتجه
true
ﻷن العلامة تشير إلى5
وهي بالفعل أكبر من4
علامة أكبر من أو يساوي
في التعبيرات السابقة يكون الناتج false
إن كانتا القيمتان متساويتين، مثال: 5 > 5
، ﻷنها ليست أكبر! لكن إن أردت أن تعرف هل القيمة اﻷولى أكبر من أو يساوي القيمة الثانية يمكنك استخدام العلامة >=
حينها سيكون الناتج true
إن كانت القيمة اﻷولى أكبر من الثانية أو تساويها!
مثال:
console.log(5 >= 4);
console.log(5 >= 5);
console.log(5 >= 6);
true
false
ناتج التعبير اﻷول
true
ﻷن5
أكبر من4
ناتج التعبير الثاني
true
ﻷن5
تساوي5
ناتج التعبير الثالث
false
ﻷن5
ليست أكبر من أو تساوي6
بل هي أصغر منها.
نفس الطريقة السابقة يتم تطبيقها مع علامة أصغر من أو يساوي <=
يمكن أن يكون التعبير قيمة للمتغير
لقد اعتادت سابقاً على أن تكون قيمة المتغير نصاً مثلاً أو رقماً، أو أي نوع من أنواع البيانات، لكننا كنا ذكرنا في درس المتغيرات ملاحظة، ربما أنت قرأتها سريعاً ولا تتذكرها ﻷنك لم تطبق عليها، واﻵن جاء وقت التطبيق... المتغير يمكن أن تكون قيمته تعبير ﻷن التعبير ينتج عنه قيمة! وهذه القيمة تكون نوع من أنواع البيانات، حسب التعبير! فهناك تعبيرات ينتج عنها رقم كالتعبيرات الحسابية، أما هنا فتعبيرات المقارنة ينتج عنها قيم منطقية كما ذكرنا true
أو false
مثال:
var result = 5 > 4;
console.log(result);
ستجد الناتج
true
إذن قيمة المتغير اﻵن أصبحتtrue
عندما يمر المفسر على التعبير فإنه يقوم بتنفيذه وايجاد الناتج ووضعه كقيمة للمتغير، فيصبح المثال السابق كأنك كتبك var result = true
اﻵن نحن نستخدم التعبيرات في أمثلة نكتبها بنفسنا، فنقارن بين قيمتين نعرف ناتجهم لكن مستقبلاً ربما مثلاً نطلب من مستخدم البرنامج أن يقوم بإدخال رقمين لنقارن بينهم ونطبع الناتج true
أم false
... وسنجرب على هذه اﻷمثلة مستقبلاً!
سنستخدم تعبيرات المقارنة بكثرة في درس الشروط if
ﻷن الشروط تعتمد بشكل كبير على تعبيرات المقارنة والقيم المنطقية، لذلك يُفضل أن تلقي نظرة على درس الشروط ولو حتى على أساسياته اﻵن...
المساهمين
وجدت خطأ أو تريد المساهمة في محتوى الدرس؟ عدل الصفحة على Github