Certains langages de programmation supportent une directive "continue" dans les boucles pour passer à la boucle suivante. Comment faites-vous la même chose dans les langues qui n'ont pas cette directive? Je fais face à une situation maintenant à povray où j'ai besoin de ce comportement. Merci.Simulation de la directive "continue" et autres alternatives
1
A
Répondre
1
Dans le cas le plus simple, il suffit d'utiliser une condition:
#for (i, from, to)
// do common actions
#if (<condition is true>)
// do something special to the condition
#end
#end
Sinon, POV-Ray 3.7 supports the #break statement que vous pouvez utiliser pour émuler continue
avec un peu d'aide de la récursivité - cependant, cela est tout à fait maladroite et inélégante :
#macro LoopWithContinuation(from, to)
#for (i, from, to)
#if (<condition is true>)
LoopWithContinuation(i + 1, to)
#break
#else
// do something
#end
#debug ""
#end
#end
LoopWithContinuation(1, 20)
Gardez à l'esprit, cependant, que POV-Ray a une limite de profondeur de récursivité fixe de 200, cette approche ne convient pas pour les boucles plus longues.