14
A
回答
23
簡短的答案是否定的。您通常會使用一些高階函數來表達相同的功能。有許多功能可以讓你做到這一點,對應不同的模式(所以如果你描述了你需要什麼,有人可能會給你一個更好的答案)。
例如,tryFind
函數返回從一個給定的謂詞返回true
序列,它可以讓你寫這樣的事情的第一個值:
seq { 0 .. 100 } |> Seq.tryFind (fun i ->
printfn "%d" i
i=66)
在實踐中,這是去,如果最好的方式你正在表達一些高級邏輯,並有一個相應的功能。如果你真的需要表達的東西像break
,你可以使用一個遞歸函數:
let rec loop n =
if n < 66 then
printfn "%d" n
loop (n + 1)
loop 0
更奇特的選項(也就是效率不高,但可能是DSL的很好)是可以定義計算表達式可讓您編寫break
和continue
。 Here is an example,但正如我所說,這不是有效的。
4
您必須將其更改爲while循環。
let (i, ans) = (ref 0, ref -1)
while(!i < 100 and !ans < 0) do
if !i = 66 then
ans := !i
ans
(這打破了,當我到達66 - 但是,是的語法是完全不同的,另一個變量的引入,等等)
2
這實在是太醜了,但對我來說它的工作。
let mutable Break = false
while not Break do
//doStuff
if breakCondition then
Break <- true
done
這對於do-while循環非常有用,因爲它確保循環至少執行一次。
我希望有一個更優雅的解決方案。我不喜歡遞歸的,因爲我害怕堆棧溢出。 :-(
0
seq {
for i = 0 to 99 do
if i = 66 then yield()
}
|> Seq.tryItem 0
|> ignore
0
對於此類問題,你可以使用一個遞歸函數
let rec IfEqualsNumber start finish num =
if start = finish then false
elif
start = num then true
else
let start2 = start + 1
IfEqualsNumber start2 finish num
0
試試這個:
exception BreakException
try
for i = 0 to 99 do
if i = 66 then
raise BreakException
with BreakException ->()
我知道有些人不喜歡用但它有優點
你不必考慮複雜的遞歸函數。 因爲你可以做到這一點,但有時它不必要地麻煩 和使用異常更簡單。
此方法允許您在循環體的中途斷開。 (中斷「標誌」方法也很簡單,但它只允許在循環體的末尾中斷)。
您可以輕鬆地從嵌套循環中轉義。
相關問題
- 1. Break while while循環
- 2. Break while while循環並轉到if/else
- 3. python while循環break語句
- 4. Shell break while-true循環
- 5. End while while循環
- 6. while while循環
- 7. while while while循環while循環
- 8. while while while while while循環
- 9. F#使用while循環
- 10. fflush while while循環
- 11. C++ Space while while循環
- 12. while while循環
- 13. Scheme while while循環
- 14. while循環階乘不使用break
- 15. 如果字符串不等於const char break while while循環
- 16. JavaScript while while循環
- 17. setTimeout while while循環
- 18. while while循環? (JAVA)
- 19. JAVA while while循環
- 20. while while循環Java
- 21. Powershell問題while while循環
- 22. 做while while循環永遠
- 23. Javascript while while do while while循環
- 24. while while循環的問題
- 25. C#foreach while while循環
- 26. 雙while循環
- 27. Java while while循環不循環
- 28. PHP for循環while while循環
- 29. SQL:在while循環中while循環
- 30. Python的while循環while循環
而且由於它不增加'我',它需要很長時間。 :-) – 2017-02-20 14:28:48