递归
递归就是A方法调用A方法!就是自己调用自己。
递归结构包括两个部分:
1.递归头:什么时候不调用自身方法,如果没有头,将陷入死循环。
2.递归体:什么时候需要调用自身方法。
public static void main(String[] args) {
System.out.println(f(3));
}
public static int f(int n){
if(n==1){
return 1;
}else{
return n*f(n-1);
}
}
练习:
简易计算器
public static void main(String[] args) {
method();
Scanner scanner = new Scanner(System.in);
System.out.println("使用Y,退出N");
String str = scanner.next();
if(str.equals("Y")){
method();
}else if(str.equals("N")){
System.out.println("程序结束");
}else{
System.out.println("输入错误");
}
scanner.close();
}
public static void method(){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入的一个数字:");
float num1 = scanner.nextFloat();
System.out.println("请输入运算符:+ - * /");
String operator = scanner.next();
System.out.println("请输入第二个数字:");
float num2 = scanner.nextFloat();
switch(operator){
case "+":
add(num1,num2);
break;
case "-":
sub(num1,num2);
break;
case "*":
mul(num1,num2);
break;
case "/":
div(num1,num2);
break;
}
}
public static void add(float a,float b){
System.out.println(a+b);
}
public static void sub(float a,float b){
System.out.println(a-b);
}
public static void mul(float a,float b){
System.out.println(a*b);
}
public static void div(float a,float b){
System.out.println(a/b);
}