JavaRush /مدونة جافا /Random-AR /عمليات الأرقام في جافا

عمليات الأرقام في جافا

نشرت في المجموعة
مرحبًا! سنتطرق اليوم إلى موضوع مهم جداً وهو عمليات الأعداد في لغة جافا . الأرقام موجودة في كل مكان في البرمجة. إذا بحثت في المناهج الدراسية، فسوف تتذكر أن جميع المعلومات الموجودة على جهاز الكمبيوتر يتم تقديمها بتنسيق رقمي - مجموعات من الأصفار والواحد - وهو ما يسمى أيضًا بالرمز الثنائي. عمليات الأرقام في جافا - 2هناك عمليات كثيرة جداً على الأعداد في البرمجة، لذا سنتناول أهمها مع الأمثلة :)

عمليات حسابية

لنبدأ بأبسط شيء، وهو العمليات الحسابية. هذه هي عمليات الجمع المعروفة (علامة +)، والطرح (-)، والضرب (*)، والقسمة (/).
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;

       System.out.println(x+y);
       System.out.println(x-y);
       System.out.println(x*y);
       System.out.println(x/y);
   }
}
إخراج وحدة التحكم:

1032
966
32967
30
لقد استخدمت كل هذا بالفعل. يمكنك إضافة عملية إليهم %- باقي القسمة.
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 33%2;
       System.out.println(y);
   }
}
إخراج وحدة التحكم:

1
في هذا المثال، نقسم 33 على 2. ونتيجة لذلك، نحصل على 16 ويبقى "ذيل" إضافي غير قابل للقسمة على 2 - واحد. وهذا "الذيل" سيكون نتيجة عملية "بقية التقسيم". تطبق Java (وكذلك الرياضيات) عوامل المقارنة . ربما تعرفهم أيضًا من المدرسة:
  • يساوي ( ==)
  • أكثر ( >)
  • أقل ( <)
  • أكبر من أو يساوي ( >=)
  • اقل او يساوي ( <=)
  • غير متساوي ( !=)
هنا يجدر الانتباه إلى نقطة مهمة يرتكب فيها العديد من المبتدئين أخطاء. تتم كتابة عملية "يساوي" بالشكل ==وليس بعلامة واحدة =. علامة الوحدة =في Java هي عامل تعيين، حيث يتم تعيين رقم أو سلسلة أو قيمة لمتغير آخر. عمليات الأرقام في جافا - 3
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x=y);// expect false to be printed to the console
   }
}
إخراج وحدة التحكم:

999
أُووبس! ومن الواضح أن هذه ليست النتيجة التي توقعناها. هذا نوع مختلف تمامًا من البيانات: كنا نتوقع رؤيته boolean، لكننا حصلنا على رقم. وذلك لأن لدينا بين قوسين عملية إسناد، وليس مقارنة. x=y تم تخصيص القيمة y(999) للمتغير xومن ثم قمنا بطباعتها xعلى لوحة التحكم. الخيار الصحيح:
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x==y);
   }
}
إخراج وحدة التحكم:

false
الآن قمنا بمقارنة الرقمين بشكل صحيح! :) ميزة أخرى لعملية التخصيص ( =) هي أنه يمكن تنفيذها "بالسلاسل":
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;
       int z = 256;

       x = y = z;
       System.out.println(x);
   }
}
إخراج وحدة التحكم:

256
تذكر: المهمة تتم من اليمين إلى اليسار. x = y = zسيتم تنفيذ هذا التعبير ( ) في خطوات:
  • ص = ض، أي ص = 256
  • س = ص، أي س = 256

العمليات الأحادية

يطلق عليهم "أحادي" من كلمة "uno" - "واحد". لقد تلقوا هذا الاسم لأنه، على عكس السابقين، يتم تنفيذهم على رقم واحد، وليس على عدة. وتشمل هذه:
  • الأحادي ناقص. إنه يعكس علامة الرقم.

    public class Main {
    
       public static void main(String[] args) {
    
           int x = 999;
    
           // change the sign for the first time
           x = -x;
           System.out.println(x);
    
           // change the sign a second time
           x= -x;
           System.out.println(x);
       }
    }

    إخراج وحدة التحكم:

    
    -999
    999

    لقد استخدمنا الناقص الأحادي مرتين. ونتيجة لذلك، أصبح رقمنا سالبًا في البداية، ثم موجبًا مرة أخرى!

  • الزيادة ( ++) والنقصان ( --)

    تؤدي العملية ++إلى زيادة الرقم بمقدار واحد، والعملية --إلى تقليله بنفس الوحدة.

    public class Main {
    
       public static void main(String[] args) {
    
           int x = 999;
           x++;
           System.out.println(x);
    
           x--;
           System.out.println(x);
       }
    }

    إخراج وحدة التحكم:

    
    1000
    999
قد يكون هذا النوع من التدوين مألوفًا لك إذا كنت قد سمعت عن لغة C++. وبمساعدة هذا الاسم المثير للاهتمام، نقل مبتكروها فكرتهم: "C++ هي امتداد للغة C". هناك نسخة محسنة شائعة من برنامج Notepad تسمى Notepad ++ نقطة مهمة. هناك نوعان من عمليات الزيادة والتناقص: اللاحقة والبادئة. x++- تدوين postfix ++x- تدوين البادئة ما هو الفرق الأساسي إذا وضعت الإيجابيات والسلبيات قبل أو بعد الرقم؟ دعونا نرى في مثال:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
   }
}
إخراج وحدة التحكم:

999
هل هناك شيء خاطيء! أردنا زيادة xبمقدار 1 وتعيين قيمة جديدة للمتغير y. أي أن y يجب أن تساوي 1000. لكن لدينا نتيجة مختلفة - 999. وتبين أنها xلم تتم زيادتها ولم تنجح عملية الزيادة؟ كيف عملت. للتحقق من ذلك، حاول طباعة x على وحدة التحكم في النهاية :)
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
       System.out.println(x);
   }
}
إخراج وحدة التحكم:

999
1000
في الواقع، لهذا السبب تسمى عملية postfix بهذه الطريقة: يتم تنفيذها بعد التعبير الرئيسي. وهذا يعني أنه في حالتنا: int y = x++; أولاً يتم تنفيذه y = x(وسيتم تعيين القيمة الأولية للمتغير y x)، وبعد ذلك فقط x++ ماذا لو لم نكن راضين عن هذا السلوك؟ تحتاج إلى استخدام تدوين البادئة:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = ++x;
       System.out.println(y);
   }
}
في هذه الحالة سيعمل أولاً ++x وبعد ذلك فقط، y = x; وهذا الفرق يستحق أن نتذكره على الفور حتى لا نرتكب أخطاء في برنامج حقيقي، حيث يمكن أن تنقلب كل السلوكيات رأساً على عقب بسبب هذا :)

العمليات المجمعة

بالإضافة إلى ذلك، في Java هناك ما يسمى بالعمليات المشتركة. يستخدمون مزيجًا من عمليتين:
  • تكليف
  • عملية حسابية
وهذا يشمل العمليات:
  • +=
  • -=
  • *=
  • /=
  • %=
لنلقي نظرة على مثال:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;

       x += y;
       System.out.println(x);
   }
}
إخراج وحدة التحكم:

1032
x += yوسائل x = x + y. فقط من أجل الإيجاز، يتم استخدام حرفين على التوالي. يعمل هذا أيضًا مع مجموعات من -=و *=و /=و %=.

العمليات المنطقية

بالإضافة إلى العمليات على الأرقام، لدى Java أيضًا عمليات على المتغيرات المنطقية - trueو false. يتم تنفيذ هذه العمليات باستخدام العوامل المنطقية
  • !- عامل التشغيل "NOT". يعكس قيمة المتغير المنطقي

    public class Main {
    
       public static void main(String[] args) {
    
           boolean x = true;
           System.out.println(!x);
       }
    }

    إخراج وحدة التحكم:

    
    false

  • &&- المشغل "و". لا تُرجع قيمة trueإلا إذا كان كلا المعاملين true.

    public class Main {
    
       public static void main(String[] args) {
    
           System.out.println(100 > 10 && 100 > 200);
           System.out.println(100 > 50 && 100 >= 100);
       }
    }

    إخراج وحدة التحكم:

    
    false
    true

    نتيجة العملية الأولى هي false، حيث أن أحد الشروط غير صحيح، وهو 100> 200. ويتطلب المشغل أن تكون جميع الشروط صحيحة (كما في السطر الثاني، على سبيل المثال) &&من أجل العودة .true

  • ||- عامل التشغيل "OR". يُرجع trueعندما يكون أحد المعاملات على الأقل صحيحًا.

    هنا سوف يعمل مثالنا السابق بشكل مختلف:

    public class Main {
    
       public static void main(String[] args) {
    
           System.out.println(100 > 10 || 100 > 200);
       }
    }

    إخراج وحدة التحكم:

    
    true

    Выражение 100 > 200 по-прежнему ложно, но оператору “or” вполне достаточно, что первая часть (100 > 10) является истинной.

تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION