العمليات الحسابية وأنواع البيانات
تعرف على العمليات الحسابية وأنواع البيانات في Java.
سنغطي ما يلي...
العودة إلى مشروعنا
حتى الآن، قطعنا شوطًا جيدًا في تعلم البرمجة اللازمة لبعض متطلبات المشروع. لنلقِ نظرةً أخرى على متطلبات عميلنا.
وفقًا للمتطلبات 4 و6، يجب أن يكون تطبيقنا قادرًا على:
إجراء عمليات حسابية كالجمع والطرح والضرب والقسمة.
احسب الإجابة الفعلية لكل سؤال.
حسنًا، دعونا نبدأ مباشرة!
جمع رقمين
يجب أن يكون هذا سهلاً: إدخال رقمين وقم بتعيينهما إلىnum1
وnum2
، ثم اطبعnum1 + num2
قم بتشغيل البرنامج أدناه وانظر إذا كنا نحصل على
import java.util.Scanner; public class MyJavaApp { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //Taking two numbers as input and storing inside two variables respectively System.out.print("First number: "); String num1 = scan.nextLine(); System.out.print("Second number: "); String num2 = scan.nextLine(); System.out.println("The answer to " + num1 + " + " + num2 + " is " + num1 + num2); } }
لكن انتظر لحظة! نحصل على إخراج "٨٢" بدلًا من "١٠". ما رأيك؟
أنواع البيانات وتحويلها
في الكود الخاص بنا:
عندما نستخدم
scan.nextLine()
يأخذ أي شيء نكتبه ويعيد لنا سلسلة نصية. لذا، الأرقام المخزنة فيnum1
وnum2
يتم التعامل معها كنص وليس كأرقام رياضية.
في Java،String
هو نوع بيانات أساسي يُستخدم لتمثيل النصوص أو تسلسلات الأحرف (السلاسل النصية). يُستخدم لتخزين ومعالجة الكلمات أو الجمل أو أي معلومات نصية في برنامج. تُحاط السلاسل النصية بعلامتي اقتباس مزدوجتين." "
.
عندما نحاول أن نضيف
num1
وnum2
باستخدام+
المشغل، هو السلسلتين بدلًا من جمع الأرقام. لهذا السبب حصلنا على "82" بدلًا من "10".يتسلسل هذا هو إجراء ضم أو ربط السلاسل معًا لإنشاء سلسلة أطول.
لحل هذه المشكلة، نحتاج إلى تحويل هذه السلاسل إلى أرقام (إلى نوع بيانات أساسي آخر يسمى الأعداد الصحيحة )، حتى يفهم الكمبيوتر أننا نريد إجراء عمليات رياضية بها.
العدد الصحيح هو عدد صحيح، سواء كان موجبًا أو سالبًا، دون أي أجزاء عشرية أو كسرية.
إذا كانت هناك طريقة لتحويل سلاسل إدخال إلى أعداد صحيحة أثناء البحث عن إدخال، فربما يمكننا إضافة الرقمين بسهولة باستخدام+
وهناك طريقة واحدة يمكننا الاستعانة بها:scan.nextInt()
.
الint
نوع البيانات
عندما نعلم أن متغير سيخزن أعدادًا صحيحة بدلًا من سلسلة نصية، علينا تعريفه على هذا النحو. يحدث أمران في السطر الثامن . أولًا، نُخبر Java أنnum1
هو عدد صحيح ونقوم بتهيئته باستخدام إدخال القادم من لوحة المفاتيح، ولكن بدلاً من استدعاءnextLine()
، نحن نسميهاscan.nextInt()
اقرأ الكود بعناية، سطرًا بسطر. ستجده مفهومًا.
import java.util.Scanner; public class MyJavaApp { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //Taking two numbers as input and storing inside two variables respectively System.out.print("First number: "); int num1 = scan.nextInt(); System.out.print("Second number: "); int num2 = scan.nextInt(); int result = num1 + num2; System.out.println("The answer to " + num1 + " + " + num2 + " is " + result); } }
يؤدي تشغيل الكود أعلاه إلى إعطاءنا "10" - وهي النتيجة التي كنا نتوقعها.
من الجيد دائمًا تحويل إدخال من لوحة المفاتيح إلىint
في حالة الأرقام.
إضافة العمليات الحسابية
الآن بعد أن قمنا بتغطية مفاهيم أنواع البيانات الأساسية، مثلint
وString
، وكيفية تحويل كل نوع بيانات إلى آخر، لنعد إلى متطلبات مشروعنا. هذا يقودنا إلى العوامل الحسابية.
العمليات الحسابية في Java
في Java، المعاملات الحسابية هي رموز خاصة تُجري عمليات على المتغيرات والقيم، تمامًا كما هو الحال عند حل المعادلات الحسابية البسيطة. بالنسبة للأرقام، رأينا بالفعل كيف...+
يجمع عامل التشغيل رقمين معًا. عوامل التشغيل الحسابية الأخرى المتوفرة في Java هي-
للطرح،*
للضرب، و/
للتقسيم.
دعونا نلقي نظرة على مثال لكل مشغل قيد الاستخدام.
public class MyJavaApp {public static void main(String[] args) {int num1 = 7;int num2 = 3;// additionSystem.out.println("7 + 3 is " + (num1 + num2));// subtractionSystem.out.println("7 - 3 is " + (num1 - num2));// multiplicationSystem.out.println("7 * 3 is " + (num1 * num2));// divisionSystem.out.println("7 / 3 is " + (num1 / num2));}}
الآن، بعد تشغيل البرنامج أعلاه، ربما لاحظت أننا لا نحصل على إخراج الأخير قيمة كسرية، على الرغم من7 / 3
ليس عددًا صحيحًا. وذلك لأنه في Java ، عند قسمة عددين صحيحين باستخدام/
المشغل، النتيجة هي أيضًا عدد صحيح - في هذه الحالة، 2. ولكن في الواقع، الإجابة أشبه بـ 2.333، وهو ليس عددًا صحيحًا.
تمامًا كما لديناint
نوع البيانات للأعداد الصحيحة، لدينا أيضًا نوع بيانات أساسي للأرقام ذات القيم العشرية (مثل 2.333) المعروف باسمdouble
لذا، عندما نعلم أنه سيتم تعيين هذا النوع من قيمة متغير ، يجب أن نعلن عنdouble
، وهذا ما نفعله بالمتغير متغيرresult
في السطر 3 أدناه:
public class MyJavaApp {public static void main(String[] args) {double result = 2.333;System.out.println(result);}}
الآن بعد أن علمنا أن لدينا مشغلين متاحين في Java، يمكننا بسهولة حساب الإجابة الصحيحة لكل سؤال.
في البرنامج أدناه، دعنا نأخذ إجابة المستخدم ثم نطبع إجابته الصحيحة (التي يحسبها برنامجنا).
import java.util.Scanner; public class MyJavaApp { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n1 = 4; int n2 = 9; String question = "What is " + n1 + " + " + n2 + "?"; System.out.println(question); int userAnswer = scan.nextInt(); System.out.println("Your answer is: "+ userAnswer); // Computing the correct answer System.out.println("The correct answer is: " + (n1 + n2)); } }
يمكننا أن نفعل الشيء نفسه لجميع المشغلين، كما هو موضح أدناه:
import java.util.Scanner; public class MyJavaApp { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n1 = 4; int n2 = 9; int userAnswer; String question = "What is " + n1 + " + " + n2 + "? "; System.out.print(question); userAnswer = scan.nextInt(); System.out.println("Your answer is: "+ userAnswer); // Computing the correct answer System.out.println("The correct answer is: " + (n1 + n2)); question = "What is " + n1 + " - " + n2 + "? "; System.out.print(question); userAnswer = scan.nextInt(); System.out.println("Your answer is: "+ userAnswer); // Computing the correct answer System.out.println("The correct answer is: " + (n1 - n2)); question = "What is " + n1 + " * " + n2 + "? "; System.out.print(question); userAnswer = scan.nextInt(); System.out.println("Your answer is: "+ userAnswer); // Computing the correct answer System.out.println("The correct answer is: " + (n1 * n2)); question = "What is " + n1 + " / " + n2 + "? "; System.out.print(question); userAnswer = scan.nextInt(); System.out.println("Your answer is: "+ userAnswer); // Computing the correct answer System.out.println("The correct answer is: " + (n1 / n2)); } }
هذا كل شيء! لقد تعلمنا دمج المتطلبين الرابع والسادس.
مراجعة الدرس
باختصار، تعلمنا بعض الأساليب وأنواع البيانات في Java التي مكّنتنا من حساب المجاميع الصحيحة. قد تظن أن Java تحتوي على أساليب مدمجة لكل حالة. لكن هذا ليس صحيح، وهو أمر جيد أيضًا.