递归讲解

 

 1 package method;
 2 
 3 public class Demo05 {
 4     public static void main(String[] args) {
 5         Demo05 demo05 = new Demo05();
 6         demo05.test();//StackOverflowError栈溢出异常
 7     }
 8     public void test(){
 9         test();
10     }
11 }
 1 package method;
 2 
 3 public class Demo06 {
 4     public static void main(String[] args) {
 5         System.out.println(fun(5));
 6     }
 7     public static int fun(int n){
 8         if(n == 1){
 9             return 1;
10         }else {
11             return n * fun(n - 1);//120
12         }
13     }
14 }

 

 

写一个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现,可以参照一下思想

  • 写4个方法:加减乘除

  • 利用循环+ switch进行用户交互

  • 传递需要操作的两个数

  • 输出结果

 1 package method;
 2 import java.util.Scanner;
 3 public class Demo07 {
 4     public static void main(String[] args){
 5             // 在while语句里面嵌入一个switch语句,在不停循环接收用户输入的时候,判断该执行什么操作
 6         Scanner scanner = new Scanner(System.in);
 7         System.out.println("欢迎使用计算器!请输入第一个数字:");
 8         while (scanner.hasNextDouble()){  // while语句不停循环,看是否有用户输入
 9             //System.out.println("请输入第一个数字:");
10             double num1 = scanner.nextDouble();  // 接收用户输入的第一个数字
11             System.out.println("请输入计算符号:");
12             String symbol = scanner.next();      // 接收用户输入的计算符号
13             System.out.println("请输入第二个数字:");
14             double num2 = scanner.nextDouble();  // 接收用户输入的第二个数字
15 
16                 switch (symbol){ // 判断用户输入的计算符号
17                     case "+":
18                         add(num1,num2);
19                         break;
20                     case "-":
21                         sub(num1,num2);
22                         break;
23                     case "*":
24                         mul(num1,num2);
25                         break;
26                     case "/":
27                         div(num1,num2);
28                         break;
29                     default:
30                         System.out.println("输入的符号不对!");
31                 }
32                 System.out.println("输出任意字母退出");  // 当输入字母是就会打破while的循环条件,从而跳出循环,结束程序
33             }
34             scanner.close();
35         }
36         public static void add(double a, double b){  // 加法
37             System.out.println(a + b);
38         }
39         public static void sub(double a, double b){ // 减法
40             System.out.println(a - b);
41         }
42         public static void mul(double a, double b){ // 乘法
43             System.out.println(a * b);
44         }
45         public static void div(double a, double b){ // 除法
46             if (b == 0){
47                 System.out.println("除数不能为零");  // 根据运算规则除数不能为零
48             }else {
49                 System.out.println(a / b);
50             }
51         }
52     }

 

posted on 2022-07-23 09:00  一枚努力学习的小白  阅读(23)  评论(0编辑  收藏  举报