如何在不使用任何迭代编程循环(如while,for,do,for-each等)的情况下进行数值计算?如何在不使用任何循环的情况下数数?
事情是这样的:
void countUp(int start, int end){
}
如何在不使用任何迭代编程循环(如while,for,do,for-each等)的情况下进行数值计算?如何在不使用任何循环的情况下数数?
事情是这样的:
void countUp(int start, int end){
}
你可以指望了使用递归。搜索它,如果你不知道它是如何工作的。所以,在哪里结束>开始,这是如何工作的。你可以用递归做很多事情。注意我的基本情况是当start == end时,它停止计数。
public void countUp(int start, int end){
if(start>=end){
return;
}
System.out.println(start++);
countUp(start,end);
}
修复,谢谢 –
如果(开始> =结束)如果(开始>结束),否则,结束号码不会被打印。 – Sandy
是这样的:
void countUp(int start, int end){
if(start <= end)
countUp(start+1, end);
}
因此,你检查,如果你开始小于端和递归调用与启动新的价值相同的功能(启动+ 1)
虽然我真的不知道你为什么要这么做... int count(int start,int end){ if(start == end)return start; return count(++ start,end); }
如果递归得太深,也就是说如果范围太宽,这可能会导致堆栈溢出。由于某种原因,上面的代码让我想起了C++元编程语言。
哦,看其他答案,++不需要启动,启动+ 1是一个更好的主意。 –
,并对格式错误感到抱歉。 –
为什么要使用recusion有很多原因。如果你告诉某人做x是一个坏主意,告诉他们为什么x不如另一种选择,将它们与一些可以帮助他们找到比x更好的选择的信息联系起来,并告诉他们为什么你建议的任务是y相反是一个更好的主意。 –
谢谢,作为Java初学者,我只是写了一些东西来了解循环是如何工作的。
你能更具体吗?你可以使用递归,你应该改变方法的'return'类型。 –
使用lambdas怎么办? –
你能定义计数的极限吗?如果有限制,那么你可以做递归 –