جاوا

F.mohamady

New Member
سلام میشه یکی سوال پایین رو راهنمایی کنه؟
متد یک ماشین حساب را بنویسید که 4 عمل اصلی را انجام دهند و در صورت بروز خطاهای زیر پیغام مناسب آن خطارا نمایش دهد:1.عدد تقسیم بر صفر
2.عدم امکان استفاده از 2 عملگر پشت سر هم.
مشکل من در نوشتن سوال بالا تعریف دومین خطاست که دو عملگر را نشه پشت سر هم استفاده کرد.(باید برای خطا کلاسی تعریف کنیم که زیر کلاس ، کلاس exception باشه)
 

the_king

مدیرکل انجمن
سلام میشه یکی سوال پایین رو راهنمایی کنه؟
متد یک ماشین حساب را بنویسید که 4 عمل اصلی را انجام دهند و در صورت بروز خطاهای زیر پیغام مناسب آن خطارا نمایش دهد:1.عدد تقسیم بر صفر
2.عدم امکان استفاده از 2 عملگر پشت سر هم.
مشکل من در نوشتن سوال بالا تعریف دومین خطاست که دو عملگر را نشه پشت سر هم استفاده کرد.(باید برای خطا کلاسی تعریف کنیم که زیر کلاس ، کلاس exception باشه)
برای تعریف یک کلاس Exception مثلا با نام DivideByZero پشت سر اسم کلاس extends Exception رو اضافه می کنید، یعنی وارث کلاس Exception باشه.
اون super هم نحوه فراخوانی متد سازنده Exception رو مشخص می کنه.

Java:
public class DivideByZero extends Exception
{
    public DivideByZero(String errorMessage)
    {
        super(errorMessage);
    }
}
و هر جا که قراره خطا رخ بده، با throw new یک شیء از اون کلاس DivideByZero به عنوان خطا ایجاد می کنید.
Java:
if (b == 0)
{
    throw new DivideByZero("Error: Divide by zero.");
}
و نمیدونم متد رو چطور طراحی کرده اید، بررسی می کنید که اگر دو عملگر در فلان پارامتر ها باشه throw new مورد نظر رو انجام بدهید.
 

F.mohamady

New Member
برای تعریف یک کلاس Exception مثلا با نام DivideByZero پشت سر اسم کلاس extends Exception رو اضافه می کنید، یعنی وارث کلاس Exception باشه.
اون super هم نحوه فراخوانی متد سازنده Exception رو مشخص می کنه.

Java:
public class DivideByZero extends Exception
{
    public DivideByZero(String errorMessage)
    {
        super(errorMessage);
    }
}
و هر جا که قراره خطا رخ بده، با throw new یک شیء از اون کلاس DivideByZero به عنوان خطا ایجاد می کنید.
Java:
if (b == 0)
{
    throw new DivideByZero("Error: Divide by zero.");
}
و نمیدونم متد رو چطور طراحی کرده اید، بررسی می کنید که اگر دو عملگر در فلان پارامتر ها باشه throw new مورد نظر رو انجام بدهید.


import java.util.*;

public class Calculator {
public static void main(String[] args){
int num1;
int num2;
String operation;

Scanner input = new Scanner(System.in);

System.out.println("please enter the first number");
num1 = input.nextInt();

System.out.println("please enter the second number");
num2 = input.nextInt();

Scanner op = new Scanner(System.in);

System.out.println("Please enter operation");
operation = op.next();

if (operation == "+") {
System.out.println("your answer is" + (num1 + num2));
}
if (operation == "-"){
System.out.println("your answer is" + (num1 - num2));
}
if (operation == "*"){
System.out.println("your answer is" + (num1 * num2));
}
if (num2==0){
throw new ArithmeticException();
}
else if(operation == "/"){
System.out.println("your answer is" + (num1 / num2));
}
}
}
من تا این جا این رو نوشتم اما نمی دونم چه جوری بنوسیم که اگر 2 تا عملگر جمع وارد شد چه جوری خطا رو برگردونه؟
 

the_king

مدیرکل انجمن
import java.util.*;

public class Calculator {
public static void main(String[] args){
int num1;
int num2;
String operation;

Scanner input = new Scanner(System.in);

System.out.println("please enter the first number");
num1 = input.nextInt();

System.out.println("please enter the second number");
num2 = input.nextInt();

Scanner op = new Scanner(System.in);

System.out.println("Please enter operation");
operation = op.next();

if (operation == "+") {
System.out.println("your answer is" + (num1 + num2));
}
if (operation == "-"){
System.out.println("your answer is" + (num1 - num2));
}
if (operation == "*"){
System.out.println("your answer is" + (num1 * num2));
}
if (num2==0){
throw new ArithmeticException();
}
else if(operation == "/"){
System.out.println("your answer is" + (num1 / num2));
}
}
}
من تا این جا این رو نوشتم اما نمی دونم چه جوری بنوسیم که اگر 2 تا عملگر جمع وارد شد چه جوری خطا رو برگردونه؟
برای مقایسه رشته ها از == استفاده نکنید، از equals استفاده کنید.
عملگر == مقدارشون رو با هم مقایسه نمی کنه، ارجاع شون رو با هم مقایسه می کنه. بررسی می کنه که آیا یک شیء هستند یا نه.
ممکنه یک شیء "+" و یک شیء "+" دیگه داشته باشید که مقدارشون یکسان ئه ولی همچنان دو شیء متفاوت هستند و == برقرار نیست.

Java:
import java.util.*;

public class Main {

    public static void main(String[] args)
    {
        int num1;
        int num2;
        int answer;
        String operation;

        Scanner input = new Scanner(System.in);

        System.out.println("please enter the first number");
        num1 = input.nextInt();

        System.out.println("please enter the second number");
        num2 = input.nextInt();

        input.nextLine();
        System.out.println("Please enter operation");
        operation = input.next();

        answer = Calculator.Calc(num1,num2,operation);
        System.out.println("your answer is " + answer);

    }
}

Java:
public class Calculator
{
    public static int Calc(int num1, int num2, String operation)
    {
        if (operation.equals("+"))
        {
            return num1 + num2;
        }
        else if (operation.equals("-"))
        {
            return num1 - num2;
        }
        else if (operation.equals("*"))
        {
            return num1 * num2;
        }
        else if (operation.equals("/"))
        {
            if (num2 == 0)
            {
                throw new ArithmeticException("Error: Divide by zero.");
            }
            return num1 / num2;
        }
        else
        {
            throw new UnsupportedOperationException("Error: Invalid operation.");
        }
    }
}
 

جدیدترین ارسال ها

بالا