التعبيرات المنطقية (Logical)
التعبيرات المنطقية (Logical Expressions)
التعبيرات المنطقية هي نوع من التعبيرات مختص بالقيمة المنطقية (Boolean) وهي true و false وبالتالي هذا النوع من التعبيرات يكون ناتج تشغيله قيمة منطقية أيضاً؛ فإما true أو false
العلامات المنطقية
| العلامة | معناها | مثال على العلامة | المثال يساوي |
|---|---|---|---|
|| | أو (Or) | true || false | true |
&& | و (And) | true && false | false |
! | ليس (not) | !true | false |
التعبير أو (Or) ||
التعبير "أو" علامته || مثل: x == 5 || x == 6 فعندما يمر المفسر على التعبير السابق يعتبر أن ناتجه يساوي:
true: إن كان الطرف اﻷول يساويtrueأو الطرف التاني يساويtruefalse: إذا كان الطرفان كلاهما يساويfalse
يمكن كتابة العلامة
|عن طريق الضغط على Shift ثم الضغط على مفتاح يتواجد أعلى زر Enter أو يساره حسب لوحة المفاتيح
كيف يعمل المفسر؟
يمر المفسر على التعبير المنطقي (أو)، فيتحقق أولاً من الطرف اﻷول.. هل true أم false، فإن كان true يكون ناتج التعبير true أما إن كان false يقوم بالتحقق من الطرف الثاني، فإذا كان true يكون ناتج التعبير true غير ذلك يكون الطرفين false بالتالي يكون ناتج التعبير false
مثال التحقق من أن أحد المتغيرين يساوي 5
var x = 5,
y = 4;
console.log(x == 5 || y == 5);
var x = 3,
y = 4;
console.log(x == 5 || y == 5);
إذا كان: (x يساوي 5 أو y يساوي 5) فإن ناتج التعبير المنطقي يساوي true
مثال التحقق من العمر
تخيل أن لدينا متغير age قيمته تساوي عُمر المُستخدم، ونريد أن نسمح فقط باﻷطفال (تحت 10 سنوات) أو كبار السن (فوق 40 سنة)، كيف يمكننا تنفيذها ؟
كنا سابقاً نستخدم الشروط المتعددة بهذا الشكل:
var age = 20;
if (age < 10){
console.log("مسموح");
}else{
if (age > 40){
console.log("مسموح");
}else{
console.log("غير مسموح");
}
}
ولكن اﻵن مع التعبيرات المنطقية باستخدام التعبير (أو) يمكننا تنفيذها بهذه الطريقة:
var age = 20;
if (age < 10 || age > 40){
console.log("مسموح");
}else{
console.log("غير مسموح");
}
نتحقق أولاً هل العمر أقل من 10 أو أكبر من 40 ؟ إذن نطبع مسموح، غير ذلك نطبع غير مسموح!
جدول نواتج التعبير (أو)
| التعبير | ناتج تفسير التعبير |
|---|---|
| true || true | true |
| true || false | true |
| false || true | true |
| false || false | false |
التعبير و (And) &&
التعبير "و" علامته && مثل: x >= 10 && x <= 20 فعندما يمر المفسر على التعبير السابق يعتبر أن ناتجه يساوي:
true: إن كان الطرف اﻷول يساويtrueو الطرف التاني يساويtrueأيضاً.false: إذا كان واحد من الطرفين يساويfalseأو كلاهما يساويfalse
يمكن كتابة العلامة
&عن طريق الضغط على Shift ثم الضغط على مفتاح العدد 7 أعلى لوحة المفاتيح
مثال التحقق من العمر
لدينا متغير age قيمته تساوي عُمر المُستخدم، ونريد أن نسمح فقط بالشباب (أكبر من 15 سنة وأقل من 40 سنة)، كيف يمكننا تنفيذها ؟
هنا التعبير المنطقي يكون "و" ﻷننا نريد أن نسمح بمن هم أكبر من 15 و أقل من 40 لذلك سنستخدم العلامة &&
كنا سابقاً نستخدم الشروط المتعددة بهذا الشكل:
var age = 20;
if (age > 15 && age < 40){
console.log("مسموح");
}else{
console.log("غير مسموح");
}
كيف يعمل المفسر؟
يمر المفسر على التعبير المنطقي (و)، فيتحقق أولاً من الطرف اﻷول.. فإذا كان false لا يكمل المفسر ويعتبر أن ناتج التعبير كله يساوي false أما إن كان true فيتحقق من الطرف الثاني، إن كان الطرف الثاني true أيضاً، يعتبر المفسر ناتج التعبير true غير ذلك يعتبره false
جدول نواتج التعبير (و) &&
| التعبير | ناتج تفسير التعبير |
|---|---|
true && true | true |
true && false | false |
false && true | false |
false && false | false |
التعبير ليس (not) !
التعبير (ليس) من أهم التعبيرات المنطقية، ويُستخدم لعكس القيمة المنطقية، لاحظ الجدول:
جدول نواتج التعبير (ليس) !
| التعبير | ناتج تفسير التعبير |
|---|---|
!true | false |
!false | true |
مثال الوضع الغير ليلي
تخيل أن لدينا متغير dark قيمته منطقية، true إن كان الوضع الليلي مفعل، وfalse إن كان غير مفعل... ونريد أن نضع شرط يتحقق إن كان الوضع الليلي غير مفعل يعني إن كان يساوي false.. يمكننا كتابة dark == false لكننا لا نفضل هذا التعبير، بل نفضل اﻹختصار: !dark
var dark = false;
if (!dark){
console.log("الوضع الليلي غير مفعل");
}
ويمكن استخدامه مع تعبيرات المقارنة والتعبيرات المنطقية اﻷخرى باستخدام اﻷقواس:
| التعبير | ناتج تفسير التعبير |
|---|---|
!(5 > 6) | true |
!(5 == 5) | false |
!(true && true) | false |
يمكن استخدام التعبيرات المنطقية كأي تعبير من التعبيرات التي درسناها سابقاً، فمثلاً يمكن أن يكون التعبير مُدخل لدالة console.log(true || true) وممكن أن يكون قيمة لمتغير var result = true || true وهكذا
المساهمين
وجدت خطأ أو تريد المساهمة في محتوى الدرس؟ عدل الصفحة على Github
