في لغة Dart، تُستخدم عوامل المقارنة (Relational Operators) لمقارنة قيمتين وإرجاع قيمة منطقية (true
أو false
). تُستخدم هذه العوامل بكثرة في الشروط (if
)، والحلقات (while
، for
)، والعمليات المنطقية. إليك شرح مفصل مع أمثلة:
1. العامل ==
(التساوي)
يُتحقق إذا كانت القيمتان متساويتين.
مثال:
dart
Copy
int a = 5;
int b = 3;
print(a == b); // الناتج: false
print(5 == 5); // الناتج: true
String s1 = "Dart";
String s2 = "dart";
print(s1 == s2); // الناتج: false (الحروف الكبيرة/الصغيرة مؤثرة)
2. العامل !=
(عدم التساوي)
يُتحقق إذا كانت القيمتان غير متساويتين.
مثال:
dart
Copy
print(a != b); // الناتج: true
print(5 != 5); // الناتج: false
print("Apple" != "Orange"); // الناتج: true
3. العامل >
(أكبر من)
يُتحقق إذا كانت القيمة اليسرى أكبر من اليمنى.
مثال:
dart
Copy
print(a > b); // الناتج: true (لأن 5 > 3)
print(2 > 5); // الناتج: false
print("Cat" > "Dog"); // الناتج: false (المقارنة حسب الترتيب الأبجدي)
4. العامل <
(أصغر من)
يُتحقق إذا كانت القيمة اليسرى أصغر من اليمنى.
مثال:
dart
Copy
print(a < b); // الناتج: false
print(3 < 5); // الناتج: true
print("Apple" < "Banana"); // الناتج: true
5. العامل >=
(أكبر من أو يساوي)
يُتحقق إذا كانت القيمة اليسرى أكبر أو تساوي اليمنى.
مثال:
dart
Copy
print(5 >= 5); // الناتج: true
print(4 >= 5); // الناتج: false
print("Dart" >= "Dart"); // الناتج: true
6. العامل <=
(أصغر من أو يساوي)
يُتحقق إذا كانت القيمة اليسرى أصغر أو تساوي اليمنى.
مثال:
dart
Copy
print(3 <= 5); // الناتج: true
print(5 <= 3); // الناتج: false
print("A" <= "B"); // الناتج: true
أمثلة متقدمة مع الشروط (if
):
dart
Copy
int age = 18;
if (age >= 18) {
print("You are an adult.");
} else {
print("You are a minor.");
}
// الناتج: You are an adult.
استخدام العوامل مع أنواع مختلفة:
- الأرقام: تُقارن حسب القيمة العددية.
- النصوص (
String
): تُقارن حسب الترتيب الأبجدي (Unicode). - الأنواع الأخرى (مثل
bool
):dartCopybool isTrue = true; bool isFalse = false; print(isTrue == isFalse); // الناتج: false
ملاحظات مهمة:
- الفرق بين
==
و=
:=
يُستخدم لتعيين قيمة (Assignment).==
يُستخدم للمقارنة (Comparison).
- المقارنة بين أنواع مختلفة:dartCopyprint(5 == “5”); // الناتج: false (int vs String) print(5 == 5.0); // الناتج: true (int vs double)
- المقارنة مع
null
:dartCopyint? x = null; print(x == null); // الناتج: true
تطبيقات عملية:
- التحقق من شروط المستخدم (مثل كلمة المرور).
- ترتيب البيانات (في الحلقات أو الخوارزميات).
- التحكم في تدفق البرنامج (عبر
if
،switch
).