java方法重载和简单计算器

Java方法

**方法重载:**一个类中,有相同的函数名称,但形参不同的函数

重载规则:

  • 方法名称必须相同
  • 参数列表必须不同(个数不同,类型不同,参数排列顺序不同等)
  • 返回类型可以相同可以不同
public class MethodDemo {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        int c = 3;

        //方法重载测试
        int sum1 = add(a,b);
        int sum2 = add(a,b,c);
        System.out.println("a + b = " +sum1); //3
        System.out.println("a + b + c = " +sum2); //6

    }
    //方法实现三个数相加
    public static int add(int a, int b, int c) {
        return a + b + c;
    }
    //方法实现两个数相加
    public static int add(int a, int b) {
        return a + b;
    }
}

可变参数 :在方法声明中,在指定参数类型后加一个省略号(…)。一个方法只能指定一个可变参数,且必须是方法的最后一个参数。即普通参数必须在其之前声明。

递归:自己调用自己,将一个大型的复杂问题层层转化为一个与原问题相似的小规模问题求解(尽量少用递归)

  • 关键1:什么时候开始递归(用到递归)

  • 关键2:什么时候结束递归(边界条件)

    public static void main(String[] args) {
        System.out.println("5的阶乘为:" +fib(5));//120
    }
    
    public static int fib(int n) {
        if(n == 1) {  //边界条件
            return 1;
        } else { 
            return n * f(n-1); //递归
        }
    }
    

    java简单计算器,实现加减乘除,接收用户循环输入

import java.util.Scanner;

/**
 * Calculator 实现计算器功能(+,—,*,/)
 */
public class Calculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        while (true) {
            System.out.println("两个数加法请输入 add:");
            System.out.println("两个数减法请输入 sub:");
            System.out.println("两个数乘法请输入 mul:");
            System.out.println("两个数除法请输入 div:");
            System.out.println("结束请输入 end:");
            String operator = scanner.next();
            switch (operator) {
                case "add":
                    System.out.println("请输入第一个数:");
                    double a1 = scanner.nextDouble();
                    System.out.println("请输入第二个数:");
                    double b1 = scanner.nextDouble();
                    System.out.println("两数和为:"+add(a1,b1));
                    break;
                case "sub":
                    System.out.println("请输入第一个数:");
                    double a2 = scanner.nextDouble();
                    System.out.println("请输入第二个数:");
                    double b2 = scanner.nextDouble();
                    System.out.println("两数差为:"+sub(a2,b2));
                    break;
                case "mul":
                    System.out.println("请输入第一个数:");
                    double a3 = scanner.nextDouble();
                    System.out.println("请输入第二个数:");
                    double b3 = scanner.nextDouble();
                    System.out.println("两数乘积为:"+multi(a3,b3));
                    break;
                case "div":
                    System.out.println("请输入第一个数:");
                    double a4 = scanner.nextDouble();
                    System.out.println("请输入第二个数:");
                    double b4 = scanner.nextDouble();
                    System.out.println("两数商为:"+div(a4,b4));
                    break;
                case "end":
                    System.out.println("程序已结束!");
                    return;
                default:
                    break;
            }
        }
    }

    public static double add(double a, double b) {
        return a + b;
    }

    public static double sub(double a, double b) {
        return a - b;
    }

    public static double multi(double a, double b) {
        return a * b;
    }

    public static double div(double a, double b) {
        return a / b;
    }
}
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值