Dilek - NetLogo'da if elseif else
bildirimi. Nasıl bu kadar verimli yapabilirim? NetLogo belgelerini kontrol etmek için hiçbir komut kontrol etmedim. Previous similar question doğrudan yanıtlamadı ancak bağlamda çözüldü.Netlogo ortamında başka bir uygulama gerçekleştirirse
Basit bir çözümdür: başkalarına daha verimli olanları arıyorum
let flag true
if(condition1)
[
...
set flag false
]
if(flag and condition2) ;else if statement
[
...
set flag false
]
if(flag) ;else statement
[
...
]
.
Düzenleme: Nicolas'ın önerisi üzerine koşulsa ikinci bayrağı ekledi. Ben bütün kalbiyle tavsiye edebilir
Önerilen kodunuz gerçekten bir "if"/"elseif"/'else' gibi değil:" condition1 "ve" condition2 "her ikisi de" true "ise? Eğer ikincisini 'if' olarak değiştirirseniz (bayrak ve koşul2) 'yi değiştirmeniz gerekir. Ama bu hızlı bir şekilde karmaşıklaşır. Daha iyi bir çözüm elde edilinceye kadar (ki düşündüğünüzden daha erken olabilir). Seth'in http://stackoverflow.com/a/20332555/487946 adresinde tarif ettiği desene yapışmasını tavsiye ederim. –
Evet, bunu nasıl özledim bilmiyorum. Sanırım Seth'in yaklaşımı sadece çözüm. Ancak özellikle bloklar daha fazla kod içerdiğinde genel olarak biraz daha okunabilir hale geliyor. –
Daha iyi bir yol olması gerektiğinin farkındayız. Bkz. Https://github.com/NetLogo/NetLogo/issues/344 –