1. Michael Bayer
  2. mako

Issues

Issue #145 new

continue / break control statements?

guest
created an issue

Hi,

I was wondering how to use control/break within a loop. I didn't find anything in the docs, so I tried this:

% for i in range(10): % if i == 3: % continue % endif ${i} % endfor

That didn't work, so I ended up with this:

% for i in range(10): <% if i == 3: continue %> ${i} % endfor

I find the first version is more readable. Perhaps it would be nice to have 'continue' and 'break' statements to complement the flow control.

Alternatively, if there's another preferred method for issuing a continue or break, it would be great to have an example in the docs.

Thanks!

Comments (3)

  1. Michael Bayer repo owner

    % X / % endX are kind of meant to be in pairs. I don't see how 'continue', 'break', or 'return' could work it's way in there. We already document 'return' as:

    <% return %>

    so in this case you only need:

    % for i in range(10):

    % if i == 3:

    <% continue %>

    % endif ${i}

    % endfor

    its pretty readable to me.

  2. guest reporter

    Could you please add this to the documentation, section "Control Structures"? It's not really straigthforward that 'continue' and 'break' should be written this way based on the 'return' example. For example I only figured it out after finding this ticket.

    Thanks!

  3. Log in to comment