العوامل المقارنة في Dart تُستخدم للمقارنة بين قيمتين وإرجاع قيمة منطقية (true
أو false
).
هذه العوامل أساسية في اتخاذ القرارات البرمجية مثل الشروط (if
، while
، وغيرها).1. جدول العوامل العلاقية في Dart
1. جدول العوامل العلاقية في Dart
العامل | الوصف | مثال | الناتج |
---|---|---|---|
== | يساوي | 5 == 5 | true |
!= | لا يساوي | 5 != 3 | true |
> | أكبر من | 10 > 5 | true |
< | أصغر من | 10 < 5 | false |
>= | أكبر من أو يساوي | 10 >= 10 | true |
<= | أصغر من أو يساوي | 5 <= 3 | false |
2. شرح كل عامل مع أمثلة عملية
1. العامل ==
(يساوي)
يُستخدم لمقارنة إذا ما كان الطرفان متساويين في القيمة.
void main() {
int a = 10;
int b = 10;
int c = 20;
print(a == b); // true (لأن 10 تساوي 10)
print(a == c); // false (لأن 10 لا تساوي 20)
}
Dart2. العامل !=
(لا يساوي)
يُستخدم لمقارنة إذا ما كان الطرفان غير متساويين.
void main() {
String name1 = "Ahmed";
String name2 = "Ali";
print(name1 != name2); // true (لأن "Ahmed" لا يساوي "Ali")
print(5 != 5); // false (لأن 5 تساوي 5)
}
Dart3. العامل >
(أكبر من)
يُستخدم لمقارنة إذا ما كان الطرف الأيسر أكبر من الطرف الأيمن.
void main() {
double x = 15.5;
double y = 10.3;
print(x > y); // true (لأن 15.5 أكبر من 10.3)
print(3 > 5); // false (لأن 3 ليست أكبر من 5)
}
Dart4. العامل <
(أصغر من)
يُستخدم لمقارنة إذا ما كان الطرف الأيسر أصغر من الطرف الأيمن.
void main() {
int age1 = 25;
int age2 = 30;
print(age1 < age2); // true (لأن 25 أصغر من 30)
print(10 < 5); // false (لأن 10 ليست أصغر من 5)
}
Dart5. العامل >=
(أكبر من أو يساوي)
يُستخدم لمقارنة إذا ما كان الطرف الأيسر أكبر أو يساوي الطرف الأيمن.
void main() {
int num1 = 10;
int num2 = 10;
int num3 = 5;
print(num1 >= num2); // true (لأن 10 تساوي 10)
print(num1 >= num3); // true (لأن 10 أكبر من 5)
print(3 >= 7); // false (لأن 3 ليست أكبر أو تساوي 7)
}
Dart6. العامل <=
(أصغر من أو يساوي)
يُستخدم لمقارنة إذا ما كان الطرف الأيسر أصغر أو يساوي الطرف الأيمن.
void main() {
double price1 = 99.99;
double price2 = 100.0;
double price3 = 99.99;
print(price1 <= price2); // true (لأن 99.99 أصغر من 100.0)
print(price1 <= price3); // true (لأن 99.99 تساوي 99.99)
print(150 <= 100); // false (لأن 150 ليست أصغر أو تساوي 100)
}
Dart3. استخدام العوامل العلاقية مع الشروط (if
, else
)
تُستخدم هذه العوامل بكثرة مع هياكل التحكم مثل if
و else
.
مثال 1: التحقق من العمر
void main() {
int age = 18;
if (age >= 18) {
print("أنت بالغ"); // سيتم طباعته لأن 18 >= 18
} else {
print("أنت قاصر");
}
}
Dartمثال 2: مقارنة كلمتي المرور
void main() {
String savedPassword = "123456";
String enteredPassword = "123456";
if (enteredPassword == savedPassword) {
print("كلمة المرور صحيحة"); // سيتم طباعته
} else {
print("كلمة المرور خاطئة");
}
}
Dartمثال 3: التحقق من نطاق رقم (Range Check)
void main() {
int number = 25;
if (number >= 1 && number <= 100) {
print("الرقم بين 1 و 100"); // سيتم طباعته
} else {
print("الرقم خارج النطاق");
}
}
Dart4. أمثلة متقدمة
مثال 1: مقارنة القوائم (Lists)
void main() {
List<int> list1 = [1, 2, 3];
List<int> list2 = [1, 2, 3];
List<int> list3 = [4, 5, 6];
print(list1 == list2); // false (لأنها كائنات مختلفة في الذاكرة)
print(list1[0] == list2[0]); // true (لأن القيم متساوية)
}
Dartملاحظة: في Dart، مقارنة القوائم باستخدام
==
تُقارن المراجع (references) وليس المحتوى.
لمقارنة المحتوى، يمكن استخدامlist1.equals(list2)
من حزمةcollection
.
مثال 2: مقارنة الكائنات (Objects)
class Person {
String name;
int age;
Person(this.name, this.age);
@override
bool operator ==(Object other) {
if (identical(this, other)) return true;
return other is Person &&
other.name == name &&
other.age == age;
}
}
void main() {
Person p1 = Person("Ahmed", 25);
Person p2 = Person("Ahmed", 25);
Person p3 = Person("Ali", 30);
print(p1 == p2); // true (لأن البيانات متطابقة)
print(p1 == p3); // false
}
Dart5. الخلاصة
العامل | الوصف | مثال | الناتج |
---|---|---|---|
== | يساوي | "Dart" == "dart" | false |
!= | لا يساوي | 10 != 5 | true |
> | أكبر من | 7 > 3 | true |
< | أصغر من | 7 < 3 | false |
>= | أكبر من أو يساوي | 5 >= 5 | true |
<= | أصغر من أو يساوي | 4 <= 3 | false |
تُستخدم هذه العوامل في:
- الشروط (
if
,else
,switch
) - الحلقات (
while
,for
) - المقارنات بين المتغيرات والكائنات
نصيحة: عند مقارنة الكائنات المخصصة (Custom Objects)، يجب تجاوز دالة
==
للحصول على نتائج صحيحة.