递归讲解
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 }