There is no clever way to do a loop-continue to the next iteration. Superficially it;s an attractive thing to have, but there are good semantic and implementation reasons why it would be dangerous, and/or very hard to implement
The loop macro is complex, but most CL implementations have a loop that shares DNA from earlier implementations, so if you examine any open-source implementation you can explore with regard to my comments:
The loop macro analyzes all it's clauses and basically collects code to be inserted (each in semantic order) in these several places:
- variable initialization at loop entry
- end tests
- body forms
- iteration variable update
- final clauses/return values at loop exit
There are a lot of other details, but these are the basic Lisp code regions into which loop expands. It would seem attractive to provide a loop-continue macro (or function) that transfers to the variable update, but when there are multiple parallel iterations in a singe loop it is very difficult to keep these several code regions consistent.
I regret not being able to give a clearer description, or an implausible user-code example, but I've thought about this before and that was my conclusion. Loop is inelegant but not very pretty -- still, it is convenient.
If you are interested in pursuing this, I suggest using macroexpand of nontrivial loop forms to learn how they work, and what the difficulties would be. (Since loop often macroexpands into lower-level macro calls, it _might_ be necessary to use a real code walker instead of simple macroexpand. My favorite implementation has one, but not all make it available.) I don't want to put more time into this right now, but if you intend to engage the problem seriously I'd be willing to discuss further.