Re: How to Break[] out of nested loops?

• To: mathgroup at smc.vnet.net
• Subject: [mg21801] Re: [mg21790] How to Break[] out of nested loops?
• From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
• Date: Fri, 28 Jan 2000 01:45:53 -0500 (EST)
• Sender: owner-wri-mathgroup at wolfram.com

```The best way, I think, is to use Catch and Throw instead of Break, e.g.

Catch[Do[
x=LengthyComputation[m];
Do[
If[condition[x,n], Throw[something]],
{n, nmax}],
{m, mmax}]]

Throw and Catch admit additional arguments which give you a complete control
over which part of a multiple loop you exit.

> From: Julian Aguirre <mtpagesj at lg.ehu.es>
To: mathgroup at smc.vnet.net
> Organization: Universidad del Pais Vasco/Euskal Herriko Unibertsitatea
> Date: Thu, 27 Jan 2000 22:57:25 -0500 (EST)
> To: mathgroup at smc.vnet.net
> Subject: [mg21801] [mg21790] How to Break[] out of nested loops?
>
> In a loop like
>
> Do[
> x=LengthyComputation[m];
> Do[
> If[condition[x,n], Break[]],
> {n, nmax}],
> {m, mmax}]
>
> the Break[] exits the inner loop. Is there a way of exiting out of the outer
> loop? I do not want to write like
>
> Do[
> x=LengthyComputation[m];
> If[condition[x,n], Break[]],
> {m, mmax},{n, nmax}]
>
> because then LengthyComputation[m] is calculated nmax times for each value
> of m isnstead of just once.
>
>
> --
> Julian Aguirre