Hi,

I don't see it in the documentation, but I'm wondering if there is a way
to have named nested loops, so that one can specify those names to break
and continue, in order to have more control. 

In the following examples, continue always skips the remaining loop for
j, while break terminates the j loop in the first example and terminates
the single outer loop in the second (I guess it can be a bit confusing
at first, but I can understand the design).

,----
| println("nested")
| for i in 1:3
|     for j in 1:6
|         if 2 < j < 4 continue end
|         if j > 5 break end
|         @printf("i: %i j: %i \n",i,j)
|     end
| end
|
| println("single outer loop")
| for i in 1:3, j in 1:6
|     if 2 < j < 4 continue end
|     if j > 5 break end
|     @printf("i: %i j: %i \n",i,j)
| end
`----

But I'm used to Fortran, where one can do things like this (CYCLE ==
continue ; EXIT == break), and you specify the loop that the instruction
applies to.
 
,----
|   INA: DO a = 1,1000
|     INB: DO b=a+1,1000
|         IF (a+b .GT. 1000) CYCLE INA
|         INC: DO c=b+1,1000
|            IF (a+b+c .GT. 1000) CYCLE INB
|            IF (a+b+c .EQ. 1000 .AND. a**2 + b**2 .EQ. c**2) THEN
|               PRINT*, a*b*c
|               EXIT INA
|            END IF
|         END DO INC
|      END DO INB
|   END DO INA
`----


Is it possible now (or in the near future) to have named nested loops in
Julia?

Thanks,
-- 
Ángel de Vicente
http://www.iac.es/galeria/angelv/          

Reply via email to