GagorAcadmey

تعلم برمجة تطبيقات الاندرويد من الصفر حتي الاحتراف

آخر المواضيع

الاثنين، 20 أغسطس 2018

العوامل في الجافا


مفهوم العوامل

عامل: تعني operator في اللغة الإنجليزية, و العامل عبارة عن رمز له معنى محدد في جافا.
يمكننا تصنيف العوامل في جافا إلى 5 مجموعات أساسية و هي:

  1. Arithmetic Operators

  2. Comparison Operators

  3. Logical Operators

  4. Bitwise Operators

  5. 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

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.

صفحتنا علي الفيسبوك

التسميات

المتواجدين حاليا