如何在不使用任何迭代編程循環(如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怎麼辦? –
你能定義計數的極限嗎?如果有限制,那麼你可以做遞歸 –