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

۳۵۱۴ بازدید
آخرین به‌روزرسانی: ۰۶ شهریور ۱۴۰۲
زمان مطالعه: ۲ دقیقه
ساخت یک ماشین حساب ساده در جاوا — از صفر تا صد

در این مقاله یک ماشین حساب ساده در جاوا طراحی می‌کنیم که عملیاتی مانند جمع، تفریق، ضرب و تقسیم را اجرا می‌کند. بدین ترتیب عملگرها و عملوندها را به عنوان ورودی از کاربر می‌گیریم و محاسبه‌ها را بر مبنای آن‌ها اجرا می‌کنیم.

تنظیمات مقدماتی

در ادامه، برخی از تنظیمات اولیه را با هم مرور می‌کنیم.

ابتدا برخی اطلاعات مقدماتی در مورد ماشین حساب نمایش می‌دهیم:

1	
2System.out.println("---------------------------------- \n" +
3  "Welcome to Basic Calculator \n" +
4  "----------------------------------");
5System.out.println("Following operations are supported : \n" +
6  "1. Addition (+) \n" +
7  "2. Subtraction (-) \n" +
8  "3. Multiplication (*) \n" +
9  "4. Division (/) \n");

سپس از java.util.Scanner برای گرفتن ورودی‌های کاربر استفاده می‌کنیم:

1Scanner scanner = new Scanner(System.in);
2 
3System.out.println("Enter an operator: (+ OR - OR * OR /) ");
4char operation = scanner.next().charAt(0);
5 
6System.out.println("Enter the first number: ");
7double num1 = scanner.nextDouble();
8 
9System.out.println("Enter the second number: ");
10double num2 = scanner.nextDouble();

زمانی که ورودی‌ها را به سیستم می‌دهیم، ابتدا باید آن‌ها را اعتبارسنجی کنیم. برای نمونه اگر عملگر واردشده یکی از موارد +، -، × یا / نباشد، ماشین حساب ما عبارت ورودی نامناسب را نمایش می‌دهد. به طور مشابه اگر عدد دوم را برای تقسیم به مقدار 0 وارد کنیم، نتیجه مناسبی به دست نخواهد آمد. بنابراین اعتبارسنجی‌ها را پیاده‌سازی می‌کنیم. ابتدا روی موقعیتی که عملگر نامعتبر است، تمرکز می‌کنیم:

1if (!(operation == '+' || operation == '-' || operation == '*' || operation == '/')) {
2    System.err.println("Invalid Operator. Please use only + or - or * or /");
3}

سپس می‌توانیم خطاها را برای عملیات نامعتبر نمایش دهیم:

1if (operation == '/' && num2 == 0.0) {
2    System.err.println("The second number cannot be zero for division operation.");
3}

ورودی کاربر ابتدا اعتبارسنجی می‌شود. سپس نتیجه محاسبه به صورت زیر نمایش می‌یابد:

<number1> <operation> <number2> = <result>

پردازش محاسبات

در وهله اول می‌توانیم از ساختار if-else برای پردازش محاسبات بهره بگیریم:

1if (operation == '+') {
2    System.out.println(num1 + " + " + num2 + " = " + (num1 + num2));
3} else if (operation == '-') {
4    System.out.println(num1 + " - " + num2 + " = " + (num1 - num2));
5} else if (operation == '*') {
6    System.out.println(num1 + " x " + num2 + " = " + (num1 * num2));
7} else if (operation == '/') {
8    System.out.println(num1 + " / " + num2 + " = " + (num1 / num2));
9} else {
10    System.err.println("Invalid Operator Specified.");
11}

به طور مشابه می‌توانیم از یک گزاره switch جاوا استفاده کنیم:

1switch (operation) {
2    case '+':
3        System.out.println(num1 + " + " + num2 + " = " + (num1 + num2));
4        break;
5    case '-':
6        System.out.println(num1 + " - " + num2 + " = " + (num1 - num2));
7        break;
8    case '*':
9        System.out.println(num1 + " x " + num2 + " = " + (num1 * num2));
10        break;
11    case '/':
12        System.out.println(num1 + " / " + num2 + " = " + (num1 / num2));
13        break;
14    default:
15        System.err.println("Invalid Operator Specified.");
16        break;
17}

می‌توانیم از یک متغیر برای ذخیره‌سازی نتیجه محاسبات استفاده کنیم. در نتیجه می‌توانیم آن را در انتها نمایش دهیم. در این حالت تنها یک بار از System.out.println استفاده می‌کنیم. ضمناً بیشینه بازه برای محاسبه 2147483647 است. در نتیجه اگر از این مقدار تجاوز کنیم، نوع داده int سرریز (overflow) می‌کند. بدین جهت باید متغیر را در نوع داده بزرگ‌تری برای نمونه در نوع double ذخیره کنیم.

سخن پایانی

در این راهنما با استفاده از دو ساختمان متفاوت، یک ماشین حساب ساده جاوا پیاده‌سازی کردیم. همچنین مطمئن شدیم که ورودی‌ها پیش از اجرای پردازش‌ها و محاسبات اعتبار سنجی می‌شوند. کد نهایی این ماشین حساب را می‌توانید در این ریپوی گیت‌هاب (+) ملاحظه کنید.

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۱۹ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
baeldung
۳ دیدگاه برای «ساخت یک ماشین حساب ساده در جاوا — از صفر تا صد»

ضمن سلام و تشکر بابت آموزش خوبتون من خودم یک ماشین حساب ساختم و درست کار می کنه فقط یک سوال دارم چیکار کنیم که برنامه ماشین حساب بسته نشه و تا ما نگفتیم ادامه پیدا کنه

چجوری با یک متغیر و یک بار استفاده از soutماشین حساب درست کار کند؟؟
ممنون میشم برام ایمیل کنید

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *