首页 > 编程语言 >java中的递归和简易计算器

java中的递归和简易计算器

时间:2022-10-11 21:59:51浏览次数:41  
标签:java 递归 double System static 计算器 println public out

递归、简易计算器

递归就是:A方法调用A方法,自己调用自己

递归结构包括两个部分:

递归头:什么时候不调用资深方法。如果没有头,将陷入死循环。

递归体:什么时候需要调用自身方法。

例如:计算阶乘:输出给定数字的阶乘,也可以稍加修改为读取用户输入数字的阶乘

package method;
public class Demo03 {
    public static void main(String[] args) {
        System.out.println(tuzi(5));
    }
    public static int tuzi(int n){
        if (n==1){
            return 1;
        }else {
            return n*tuzi(n-1);
        }
    }
}

小练习、计算器

package method;

import java.util.Scanner;

public class Demo04 {
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
       System.out.println("请输入一个数字:");
       double a=scanner.nextDouble();
       System.out.println("请输入运算符:");
       String ch=scanner.next();
       System.out.println("请输入第二个数字:");
       double b=scanner.nextDouble();
       switch (ch){
           case "+":
               System.out.println("结果为:\n"+a+"+"+b+"="+add(a,b));
               break;
           case "-":
               System.out.println("结果为:\n"+a+"-"+b+"="+sub(a,b));
               break;
           case "*":
               System.out.println("结果为:\n"+a+"*"+b+"="+mul(a,b));
               break;
           case "/":
               System.out.println("结果为:\n"+a+"/"+b+"="+div(a,b));
               break;
           default:
               System.out.println("输入有误!");
      }


       scanner.close();
  }

   //方法
   //加法
   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 mul(double a,double b){
       return a*b;
  }
   //除法
   public static double div(double a,double b){
       return a/b;
  }
}

结果为:

 

 

 

 

标签:java,递归,double,System,static,计算器,println,public,out
From: https://www.cnblogs.com/zhazhawei906/p/16782706.html

相关文章

  • 学校Java Week5
    Week5W5L1ReviewControlFlowConditionLoopscounterLoopsForloopsDoestheexactsamethingwithlesscodefor(inti=0;i<10;i++)//initialvalue......
  • Java-Day05 while/do-while/多重嵌套例题/break/continue
    学习时间:2022/10/10-2022/10/11一、while循环1.结构:①初始化条件While(②循环条件[布尔类型]){③循环体;④迭代条件;}执行过程:①-②......
  • 新人小白学Java第一天笔记
    一、标识符1关键字2标识符注意(1)所有的标识符都应该以字母(A-Z或者a-z),美元符($),或者下划线(_)开始(2)首字符之后可以是字母(A-Z或者a-z),美元符($),或者下划线(_)或数字的任何字符......
  • ActiveMQ启动报错(端口被占用):java.lang.IllegalStateException
    ActiveMQ端口被异常占用这个问题太恶心了,启动Tomcat,默认的端口是8080,死活启动不了,看着报错信息就是端口被占用,网上一直搜索解决办法:netstat-aon|findstr"8080" 然......
  • Java的匿名内部类
    匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实......
  • java中的泛型总结
    要我直接说出泛型是个what我还真讲不出来,这里先由一道问题引入:定义一个坐标点类,要求能保存各种类型的数据,如:整形,浮点型,和字符串类型既然变量类型起先不确定,那么很容易想到......
  • JAVA的内部类
    内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的......
  • idea javaWeb tomcat报Driver ClassNotFoundException解决办法
    1.在WEB-INF目录下创建lib目录(如果没有的话),再接着将mysql-connection的jar报复制过来放到lib目录下  2.再点击file-ProjectStructure-Modules,接着点击右上角......
  • Javaweb学习 -----------------操作数据库中的数据
    1、添加数据 insertinto表名(列名1,列名2,...)values(值1,值2,...);//给指定列添加数据insertinto表名values(值1,值2,...);......
  • Javaweb学习 ------------------操作表
    1、查询表showtables;//查询当前数据库下所有表的名称desc表名称;//查询当前表中各个字段的结构属性2、创建表createtable表名(字段名1数据类......