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. > > Thanks in advance. > > -- > Julian Aguirre > Universidad del Pais Vasco > >