代码为:public static void main(String[] args) { // TODO Auto-generated method stub score();}public static void score(){ System.out.println("请输入一个5分制成绩"); Scanner in = new Scanner(System.in); int score = in.nextInt(); if(score>=0&&score<=5){ switch(score){ case 5:System.out.println("优秀"); break; case 4:System.out.println("良好"); break; case 3:System.out.println("及格"); break; default:System.out.println("不及格"); break; } } else{ score(); } System.out.println("over");}执行效果为为什么递归后会执行后面的输出语句,而且是在最后一次一起执行,不是每次递归前输出
6 回答

慕田峪7331174
TA贡献1828条经验 获得超13个赞
很明显,你这个逻辑不应该递归score
,而是在main
中循环控制。
PS:递归适合在一些用了之后明显易读的逻辑中使用,例如斐波拉契数列。递归有时候还需要改造成循环,因为在递归层次深的情况下,其性能很差,指数爆炸级变差。

临摹微笑
TA贡献1982条经验 获得超2个赞

慕斯王
TA贡献1864条经验 获得超2个赞
添加回答
举报
0/150
提交
取消