[英]How to “continue” in a loop in smalltalk
我有以下代碼,如果我小於5,我想“繼續”:
1 to: 10 do: [ :i |
i < 5 ifTrue: [ continue ].
'Square of i = ', (i * i) printNl.
]
上面代碼中的“繼續”顯然不起作用。 我知道exit
可以用來打破循環。 但是如何continue
? 謝謝你的幫助。
在您的情況下,您可以簡單地使用ifFalse:
::
1 to: 10 do: [ :i |
i < 5 ifTrue: [
"Any code you need"
] ifFalse: [ 'Square of i = ', (i * i) printNl ].
]
以下代碼可能僅在Pharo中有效。 (它在GNU Smalltalk中不起作用,在Smalltalk / X中,如果使用正確的模,它可能會起作用。 %
返回復數):
1 to: 10 do: [ :i |
[ :continue |
i % 5 = 0 ifTrue: [
Transcript show: i; cr.
continue value ].
Transcript
show: i;
show: ', '.
] valueWithExit.
]
valueWithExit
在Pharo中的實現:
valueWithExit
self value: [ ^nil ]
含義:
接收者必須是一個參數的塊。 當對其求值並通過一個塊時,發送value
消息時將退出接收器塊(在Pharo中返回nil
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.