مفهوم العوامل
عامل: تعني operator في اللغة الإنجليزية, و العامل عبارة عن رمز له معنى محدد في جافا.
يمكننا تصنيف العوامل في جافا إلى 5 مجموعات أساسية و هي:
Arithmetic Operators
Comparison Operators
Logical Operators
Bitwise Operators
Assignment Operators
هناك أيضاً عوامل أخرى, سنراها في آخر الدرس.
العوامل التي تستخدم في العمليات الحسابية (Arithmetic Operators)
إسم العامل | رمزه | مثال | شرح الكود |
---|---|---|---|
Assignment | = | a = b | أعطي a قيمة b |
Addition | + | a + b | أضف قيمة b على قيمة a |
Subtraction | - | a - b | إطرح قيمة b من قيمة a |
Unary plus | + | +a | أضرب قيمة a بالعامل + |
Unary minus | - | -a | أضرب قيمة a بالعامل - |
Multiplication | * | a * b | أضرب قيمة a بقيمة b |
Division | / | a / b | أقسم قيمة a على قيمة b |
Modulo | % | a % b | للحصول على آخر رقم يبقى عندما نقسم قيمة a على قيمة b |
Increment | ++ | a++ | لإضافة 1 على قيمة a و تستخدم في الحلقات |
Decrement | -- | a-- | لإنقاص 1 من قيمة a و تستخدم في الحلقات |
مثال تطبيقي
.سنحصل علي النتيجة التالية عند التشغيل
public class ArithmeticOperatorDemo { public static void main(String args[]) { int num1 = 200; int num2 = 20; System.out.println("num1 + num2: " + (num1 + num2) ); System.out.println("num1 - num2: " + (num1 - num2) ); System.out.println("num1 * num2: " + (num1 * num2) ); System.out.println("num1 / num2: " + (num1 / num2) ); System.out.println("num1 % num2: " + (num1 % num2) ); } }
num1 + num2: 220 num1 - num2: 180 num1 * num2: 4000 num1 / num2: 10 num1 % num2: 0
العوامل التي تستخدم في المقارنات (Comparison Operators)
إسم العامل | رمزه | مثال | شرح الكود |
---|---|---|---|
Equal to | == | (a == b) | هل قيمة a تساوي قيمة b ؟ إذا كان الجواب نعم فإنها ترجع true |
Not equal to | != | (a != b) | هل قيمة a لا تساوي قيمة b ؟ إذا كان الجواب نعم فإنها ترجع true |
Greater than | > | (a > b) | هل قيمة a أكبر من قيمة b ؟ إذا كان الجواب نعم فإنها ترجع true |
Less than | < | (a < b) | هل قيمة a أصغر من قيمة b ؟ إذا كان الجواب نعم فإنها ترجع true |
Greater than or Equal to |
>= | (a >= b) | هل قيمة a أكبر أو تساوي قيمة b ؟ إذا كان الجواب نعم فإنها ترجع true |
Less than or Equal to |
<= | (a <= b) | هل قيمة a أصغر أو تساوي قيمة b ؟ إذا كان الجواب نعم فإنها ترجع true |
مثال تطبيقي
.سنحصل علي النتيجة التالية عند التشغيل
public class RelationalOperatorDemo { public static void main(String args[]) { int num1 = 100; int num2 = 50; if (num1==num2) { System.out.println("num1 and num2 are equal"); } else{ System.out.println("num1 and num2 are not equal"); } if( num1 != num2 ){ System.out.println("num1 and num2 are not equal"); } else{ System.out.println("num1 and num2 are equal"); } if( num1 > num2 ){ System.out.println("num1 is greater than num2"); } else{ System.out.println("num1 is not greater than num2"); } if( num1 >= num2 ){ System.out.println("num1 is greater than or equal to num2"); } else{ System.out.println("num1 is less than num2"); } if( num1 < num2 ){ System.out.println("num1 is less than num2"); } else{ System.out.println("num1 is not less than num2"); } if( num1 <= num2){ System.out.println("num1 is less than or equal to num2"); } else{ System.out.println("num1 is greater than num2"); } } }
num1 and num2 are not equal num1 and num2 are not equal num1 is greater than num2 num1 is greater than or equal to num2 num1 is not less than num2 num1 is greater than num2
العوامل التي تستخدم في وضع شروط منطقية (Logical Operators)
إسم العامل | رمزه | مثال | شرح الكود |
---|---|---|---|
AND | && | (a && b) | هل قيمة a و b تساويان true ؟ هنا يجب أن يتم تحقيق الشرطين ليرجع true |
OR | || | (a || b) | هل قيمة a أو b أو كلاهما تساويان true ؟ هنا يكفي أن يتم تحقيق شرط واحد من الشرطين ليرجع true |
NOT | ! | !a | هل قيمة a لا تساوي true ؟ إذا كان الجواب نعم فإنها ترجع true |
مثال تطبيقي
.سنحصل علي النتيجة التالية عند التشغيل
public class LogicalOperatorDemo { public static void main(String args[]) { boolean b1 = true; boolean b2 = false; System.out.println("b1 && b2: " + (b1&&b2)); System.out.println("b1 || b2: " + (b1||b2)); System.out.println("!(b1 && b2): " + !(b1&&b2)); } }
b1 && b2: false b1 || b2: true !(b1 && b2): true
العوامل التي تستخدم للتعامل مع الـ bits (Bitwise Operators)
إسم العامل | رمزه | مثال | شرح الكود |
---|---|---|---|
Bitwise AND | & | a & b | العامل & يحسب ناتج جمع الـ bits المشتركة بين a و b |
Bitwise OR | | | a | b | العامل | يحسب ناتج جمع الـ bits المشتركة و الغير مشتركة بين a و b |
Bitwise XOR | ^ | a ^ b | العامل ^ يحسب ناتج جمع الـ bits الغير مشتركة بين a و b |
Bitwise compliment OR | ~ | ~a | العامل ~ يقلب الـ bits التي تساوي 0 إلى 1 و يقلب الـ bits التي تساوي 1 إلى 0, ثم يضيف عليهم 1 و يحسب ناتج جمعهم, بعدها يضرب الجواب بالعامل ( - ) ثم يعطينا جواب سلبي. |
Left shift | << | a << 2 | العامل << يزيح الـ bits من آخر اليسار إلى أول اليمين. العدد 2 يعني أننا سنزيح آخر إثنين bits و نضعهم في الأول. |
Right shift | >> | a >> 2 | العامل >> يزيح الـ bits من أول اليمين إلى آخر اليسار. العدد 2 يعني أننا سنزيح أول إثنين bits و نضعهم في الأخير. |
Zero fill right shift | >>> | a >>> 2 | العامل >>> يزيح الـ bits من أول اليمين ثم يبدلهم بأصفار و يضعهم في آخر اليسار. العدد 2 يعني أننا سنمسح أول إثنين bits و نضع بدالهم صفرين في الأخير. |
مثال تطبيقي
.سنحصل علي النتيجة التالية عند التشغيل
public class BitwiseOperatorDemo { public static void main(String args[]) { int num1 = 11; int num2 = 22; int result = 0; result = num1 & num2; System.out.println("num1 & num2: "+result); result = num1 | num2; System.out.println("num1 | num2: "+result); result = num1 ^ num2; System.out.println("num1 ^ num2: "+result); result = ~num1; System.out.println("~num1: "+result); result = num1 << 2; System.out.println("num1 << 2: "+result); result = num1 >> 2; System.out.println("num1 >> 2: "+result); } }
num1 & num2: 2 num1 | num2: 31 num1 ^ num2: 29 ~num1: -12 num1 << 2: 44 num1 >> 2: 2
العوامل التي تستخدم لإعطاء قيم للمتغيرات (Assignment Operators)
إسم العامل | رمزه | مثال | شرح الكود |
---|---|---|---|
Basic Assignment | = | a = b | ضع قيمة b في a. |
Add AND Assignment | += | a += b | أضف قيمة a على قيمة b و خزن الناتج في a |
Susbtract AND Assignment | -= | a -= b | أنقص قيمة a من قيمة b و خزن الناتج في a |
Multiply AND Assignment | *= | a *= b | أضرب قيمة a بقيمة b و خزن الناتج في a |
Divide AND Assignment | /= | a /= b | أقسم قيمة a على قيمة b و خزن الناتج في a |
Modulo AND Assignment | %= | a %= b | أقسم قيمة a على قيمة b و خزن آخر رقم يبقى من عملية القسمة في a |
Left shift AND Assignment | <<= | a <<= 2 | أزح آخر إثنين bits و ضعهم في الأول ثم خزن الناتج في a |
Right shift AND Assignment | >>= | a >>= 2 | أزح أول اثنين bits و ضعهم في الآخر ثم خزن الناتج في a |
Bitwise AND Assignment | &= | a &= b | أحسب ناتج جمع الـ bits المشتركة بين a و b و خزن الناتج في a |
Bitwise exclusive OR and Assignment | ^= | a ^= b | أحسب ناتج جمع الـ bits الغير مشتركة بين a و b و خزن الناتج في a |
Bitwise inexclusive OR and Assignment | |= | a |= b | أحسب ناتج جمع الـ bits المشتركة و الغير مشتركة بين a و b و خزن الناتج في a |
مثال تطبيقي
.سنحصل علي النتيجة التالية عند التشغيل
public class AssignmentOperatorDemo { public static void main(String args[]) { int num1 = 10; int num2 = 30; num2 = num1; System.out.println(" = Output: "+num2); num2 += num1; System.out.println("+= Output: "+num2); num2 -= num1; System.out.println("-= Output: "+num2); num2 *= num1; System.out.println("*= Output: "+num2); num2 /= num1; System.out.println("/= Output: "+num2); num2 %= num1; System.out.println("%= Output: "+num2); } }
= Output: 10 += Output: 20 -= Output: 10 *= Output: 100 /= Output: 10 %= Output: 0
عوامل أخرى مهمة في جافا
إسم العامل | رمزه | إستخدامه |
---|---|---|
Conditional | :? | يطلق عليه أيضاً إسم Ternary Operator لأنه يأخذ ثلاث عناصر ليعمل. يمكن إستعماله بدل جمل الشرط if و else في حال كنت تريد إعطاء قيمة للمتغير. |
Instance Of | instanceof | يستخدم لمعرفة إذا كان الكائن هو نسخة لكلاس معين أم لا. إذا كان نسخة منه فإنه يرجع true إذا لم يكن منه فإنه يرجع false |
مثال تطبيقي
.سنحصل علي النتيجة التالية عند التشغيل
public class TernaryOperatorDemo { public static void main(String args[]) { int num1, num2; num1 = 50; /* num1 is not equal to 10 that's why * the second value after colon is assigned * to the variable num2 */ num2 = (num1 == 10) ? 100: 200; System.out.println( "num2: "+num2); /* num1 is equal to 50 that's why * the first value is assigned * to the variable num2 */ num2 = (num1 == 50) ? 100: 200; System.out.println( "num2: "+num2); } }
num2: 200 num2: 100
Program to find the largest number using ternary operator
مثال تطبيقي
.سنحصل علي النتيجة التالية عند التشغيل
import java.util.Scanner; public class Main { public static void main(String args[]) { int num1, num2, num3, result, temp; /*تم تعريف متغيرات من النوع الصحيح لتحمل القيم لاحقا*/ Scanner scanner = new Scanner(System.in); System.out.println("Enter First Number:"); num1 = scanner.nextInt(); System.out.println("Enter Second Number:"); num2 = scanner.nextInt(); System.out.println("Enter Third Number:"); num3 = scanner.nextInt(); <span class="comment">/*في الخطوة الاولي تمت مقارنة العدد الاول مع الثاني * ووضع نتيجة المقارنة في المتغير temp * ثم تمت مقارنة العدد الثالث مع قيمة المتغير temp *وتخزين القيمة النهاية في المتغير result */</span> temp = num1>num2 ? num1:num2; result = num3>temp ? num3:temp; System.out.println("Largest Number is:"+result); //قم بتغير الشرط الي أصغر من وستحصل علي برنامج حساب أصغر رقم بين ثلاثة أرقام } }
Enter First Number: 15 Enter Second Number: 40 Enter Third Number: 10 Largest Number is:40
ليست هناك تعليقات:
إرسال تعليق
ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.