在 if() 中重现 java 逻辑控制
reproduce java logic control in if()
将此 Java 代码转换为 Netlogo 的最有效方法是什么:
boolean cont = true;
for (int i = 0; cont && i < 10; i++) {
if (condition) {
// do stuff
cont = false;
}
}
我已经尝试过类似的方法:
let cont true
while [cont][
foreach a-list [
if (condition)[
;; do stuff
set cont false
]
]
]
但效率不高,因为 foreach 可能会结束而 while 条件不会
您可以使用 stop
来中断程序。但是要小心:stop
退出整个过程,而不仅仅是循环。这可以通过在它自己的过程中包含相关代码来处理:
to loop-through-list
foreach a-list [
if condition? [ stop ]
; do stuff...
]
print "Be careful: this line won't execute!"
end
一些一般性建议:NetLogo 有自己的做事方式,与 Java 截然不同。特别是,我建议避免在 NetLogo 代码中使用索引和 while
循环。它们通常可以用 foreach
or map
代替,从而产生更健壮和可维护的代码。
将此 Java 代码转换为 Netlogo 的最有效方法是什么:
boolean cont = true;
for (int i = 0; cont && i < 10; i++) {
if (condition) {
// do stuff
cont = false;
}
}
我已经尝试过类似的方法:
let cont true
while [cont][
foreach a-list [
if (condition)[
;; do stuff
set cont false
]
]
]
但效率不高,因为 foreach 可能会结束而 while 条件不会
您可以使用 stop
来中断程序。但是要小心:stop
退出整个过程,而不仅仅是循环。这可以通过在它自己的过程中包含相关代码来处理:
to loop-through-list
foreach a-list [
if condition? [ stop ]
; do stuff...
]
print "Be careful: this line won't execute!"
end
一些一般性建议:NetLogo 有自己的做事方式,与 Java 截然不同。特别是,我建议避免在 NetLogo 代码中使用索引和 while
循环。它们通常可以用 foreach
or map
代替,从而产生更健壮和可维护的代码。