ساخت یک ماشین حساب ساده در جاوا — از صفر تا صد

در این مقاله یک ماشین حساب ساده در جاوا طراحی میکنیم که عملیاتی مانند جمع، تفریق، ضرب و تقسیم را اجرا میکند. بدین ترتیب عملگرها و عملوندها را به عنوان ورودی از کاربر میگیریم و محاسبهها را بر مبنای آنها اجرا میکنیم.
تنظیمات مقدماتی
ابتدا برخی اطلاعات مقدماتی در مورد ماشین حساب نمایش میدهیم:
System.out.println("---------------------------------- \n" + "Welcome to Basic Calculator \n" + "----------------------------------"); System.out.println("Following operations are supported : \n" + "1. Addition (+) \n" + "2. Subtraction (-) \n" + "3. Multiplication (*) \n" + "4. Division (/) \n");
سپس از java.util.Scanner برای گرفتن ورودیهای کاربر استفاده میکنیم:
Scanner scanner = new Scanner(System.in); System.out.println("Enter an operator: (+ OR - OR * OR /) "); char operation = scanner.next().charAt(0); System.out.println("Enter the first number: "); double num1 = scanner.nextDouble(); System.out.println("Enter the second number: "); double num2 = scanner.nextDouble();
زمانی که ورودیها را به سیستم میدهیم، ابتدا باید آنها را اعتبارسنجی کنیم. برای نمونه اگر عملگر واردشده یکی از موارد +، -، × یا / نباشد، ماشین حساب ما عبارت ورودی نامناسب را نمایش میدهد. به طور مشابه اگر عدد دوم را برای تقسیم به مقدار 0 وارد کنیم، نتیجه مناسبی به دست نخواهد آمد. بنابراین اعتبارسنجیها را پیادهسازی میکنیم. ابتدا روی موقعیتی که عملگر نامعتبر است، تمرکز میکنیم:
if (!(operation == '+' || operation == '-' || operation == '*' || operation == '/')) { System.err.println("Invalid Operator. Please use only + or - or * or /"); }
سپس میتوانیم خطاها را برای عملیات نامعتبر نمایش دهیم:
if (operation == '/' && num2 == 0.0) { System.err.println("The second number cannot be zero for division operation."); }
ورودی کاربر ابتدا اعتبارسنجی میشود. سپس نتیجه محاسبه به صورت زیر نمایش مییابد:
<number1> <operation> <number2> = <result>
پردازش محاسبات
در وهله اول میتوانیم از ساختار if-else برای پردازش محاسبات بهره بگیریم:
if (operation == '+') { System.out.println(num1 + " + " + num2 + " = " + (num1 + num2)); } else if (operation == '-') { System.out.println(num1 + " - " + num2 + " = " + (num1 - num2)); } else if (operation == '*') { System.out.println(num1 + " x " + num2 + " = " + (num1 * num2)); } else if (operation == '/') { System.out.println(num1 + " / " + num2 + " = " + (num1 / num2)); } else { System.err.println("Invalid Operator Specified."); }
به طور مشابه میتوانیم از یک گزاره switch جاوا استفاده کنیم:
switch (operation) { case '+': System.out.println(num1 + " + " + num2 + " = " + (num1 + num2)); break; case '-': System.out.println(num1 + " - " + num2 + " = " + (num1 - num2)); break; case '*': System.out.println(num1 + " x " + num2 + " = " + (num1 * num2)); break; case '/': System.out.println(num1 + " / " + num2 + " = " + (num1 / num2)); break; default: System.err.println("Invalid Operator Specified."); break; }
میتوانیم از یک متغیر برای ذخیرهسازی نتیجه محاسبات استفاده کنیم. در نتیجه میتوانیم آن را در انتها نمایش دهیم. در این حالت تنها یک بار از System.out.println استفاده میکنیم. ضمناً بیشینه بازه برای محاسبه 2147483647 است. در نتیجه اگر از این مقدار تجاوز کنیم، نوع داده int سرریز (overflow) میکند. بدین جهت باید متغیر را در نوع داده بزرگتری برای نمونه در نوع double ذخیره کنیم.
سخن پایانی
در این راهنما با استفاده از دو ساختمان متفاوت، یک ماشین حساب ساده جاوا پیادهسازی کردیم. همچنین مطمئن شدیم که ورودیها پیش از اجرای پردازشها و محاسبات اعتبار سنجی میشوند. کد نهایی این ماشین حساب را میتوانید در این ریپوی گیتهاب (+) ملاحظه کنید.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای زبان برنامهنویسی جاوا (JAVA)
- مجموعه آموزشهای برنامهنویسی
- گنجینه آموزشهای جاوا (Java)
- زبان برنامه نویسی جاوا (Java) — از صفر تا صد
- پایتون یا جاوا کدام بهتر است؟ — راهنمای جامع
==
ضمن سلام و تشکر بابت آموزش خوبتون من خودم یک ماشین حساب ساختم و درست کار می کنه فقط یک سوال دارم چیکار کنیم که برنامه ماشین حساب بسته نشه و تا ما نگفتیم ادامه پیدا کنه
چجوری با یک متغیر و یک بار استفاده از soutماشین حساب درست کار کند؟؟
ممنون میشم برام ایمیل کنید