2016-03-06 89 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初學者,我只是寫了一些東西來了解循環是如何工作的。

相關問題