Fortran巢狀迴圈


可以在一個或多個迴圈結構巢狀任何另一個迴圈結構。也可以把標籤放到回圈中。

語法

iloop: do i = 1, 3
   print*, "i: ", i
   
   jloop: do j = 1, 3         
      print*, "j: ", j         
      
      kloop: do k = 1, 3
         print*, "k: ", k
         
      end do kloop
   end do jloop  
end do iloop

範例

program nestedLoop 
implicit none

   integer:: i, j, k
   
   iloop: do i = 1, 3      
      jloop: do j = 1, 3         
         kloop: do k = 1, 3              
         
            print*, "(i, j, k): ", i, j, k               
            
         end do kloop       
      end do jloop
   end do iloop

end program nestedLoop  

當上述程式碼被編譯和執行時,它產生了以下結果:

(i, j, k): 1  1  1
(i, j, k): 1  1  2
(i, j, k): 1  1  3
(i, j, k): 1  2  1
(i, j, k): 1  2  2
(i, j, k): 1  2  3
(i, j, k): 1  3  1
(i, j, k): 1  3  2
(i, j, k): 1  3  3
(i, j, k): 2  1  1
(i, j, k): 2  1  2
(i, j, k): 2  1  3
(i, j, k): 2  2  1
(i, j, k): 2  2  2
(i, j, k): 2  2  3
(i, j, k): 2  3  1
(i, j, k): 2  3  2
(i, j, k): 2  3  3
(i, j, k): 3  1  1
(i, j, k): 3  1  2
(i, j, k): 3  1  3
(i, j, k): 3  2  1
(i, j, k): 3  2  2