2016-03-06 100 views
-4

如何在不使用任何迭代编程循环(如while,for,do,for-each等)的情况下进行数值计算?如何在不使用任何循环的情况下数数?

事情是这样的:

void countUp(int start, int end){ 

}

+5

你能更具体吗?你可以使用递归,你应该改变方法的'return'类型。 –

+0

使用lambdas怎么办? –

+0

你能定义计数的极限吗?如果有限制,那么你可以做递归 –

回答

0

你可以指望了使用递归。搜索它,如果你不知道它是如何工作的。所以,在哪里结束>开始,这是如何工作的。你可以用递归做很多事情。注意我的基本情况是当start == end时,它停止计数。

public void countUp(int start, int end){ 
if(start>=end){ 
    return; 
} 
System.out.println(start++); 
countUp(start,end); 
} 
+0

修复,谢谢 –

+0

如果(开始> =结束)如果(开始>结束),否则,结束号码不会被打印。 – Sandy

0

是这样的:

void countUp(int start, int end){ 
    if(start <= end) 
    countUp(start+1, end); 
} 

因此,你检查,如果你开始小于端和递归调用与启动新的价值相同的功能(启动+ 1)

-1

虽然我真的不知道你为什么要这么做... int count(int start,int end){ if(start == end)return start; return count(++ start,end); }

如果递归得太深,也就是说如果范围太宽,这可能会导致堆栈溢出。由于某种原因,上面的代码让我想起了C++元编程语言。

+0

哦,看其他答案,++不需要启动,启动+ 1是一个更好的主意。 –

+0

,并对格式错误感到抱歉。 –

+0

为什么要使用recusion有很多原因。如果你告诉某人做x是一个坏主意,告诉他们为什么x不如另一种选择,将它们与一些可以帮助他们找到比x更好的选择的信息联系起来,并告诉他们为什么你建议的任务是y相反是一个更好的主意。 –

0

谢谢,作为Java初学者,我只是写了一些东西来了解循环是如何工作的。

相关问题