java - 使用return语句递归打印数字
问题描述
我正在使用递归打印数字,直到 2(数字),我将零(0)作为输入传递并递归调用它,直到数字达到 2。我已经尝试过这段代码,它显示了正确的输出。
class Test{
public static void main(String[] args) {
rec(0);
}
private static void rec(int num){
if(num<=2){
rec(++num);
}
System.out.println(num);
}
}
但我想通过以下方式做到这一点。
class Test{
public static void main(String[] args) {
rec(0);
}
private static void rec(int num){
if(num==2){
return;
}
rec(++num);
System.out.println(num);
}
}
预期输出:
2,1,0
但它显示:
2,1
为什么会这样?
解决方案
++num
increments num
,这(如这里)使代码更难理解。
试着打电话rec(num + 1);
。
您可能会发现您的终止条件需要修改为:
if (num > 2)
终止条件通常是“什么都不做”的情况,这里就是这种情况。
推荐阅读
- ssl - curl命令中使用的cacert,cert和key有什么区别?
- java - 避免Java中不同枚举值的多个if-else条件
- r - 我们如何确保在单击按钮后执行更新查询后数据表会自动更新
- python - Python - 通过 Selenium 访问受密码保护的网站
- c# - 添加给定列表中的所有数字
- c++ - HTTP POST 请求 C++
- django - Django Model对象创建方法
- android - 使用“make project”构建的 Android 应用程序崩溃,但使用“Run”安装时不会崩溃
- ringcentral - 在 RingCentral 查看 SMS 的详细信息
- excel - Excel - 在连续时间轴上绘制时间段