关于java定义方法的问题

import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入贷款本金");
double loan=sc.nextDouble();
System.out.println("请输入月利率");
double rate=sc.nextDouble();
System.out.println("请输入还款月数");
double month=sc.nextDouble();
double money=cal_money(loan,rate,month);
System.out.println("你的月还款额是");
System.out.println(money);
}
static double sum(double num1,double num2);{
if(num1==0) return 1;
if(num1==1) return num2+1;
return (num2+1)*sum(num1,num2-1);
}
static double cal_money(double num3,double num4,double num5);{
return num3*num4*sum(num4,num5)/(sum(num4,num5)-1);
}
}
求改错啊!!!

你的算法有问题,递归的返回条件始终无法满足,导致递归无法返回,成了死循环了。你的sum的参数num1是贷款利率,应该不可能为0或1的。
你这是什么换卡方式呢?

编译错误还是功能逻辑错误啊,如果是编译错误直接按Eclipse的帮助提示进行修正,就是Ctrl 加1,逻辑错误只能单独调试跟踪代码了。