Fortran 所提供的 迴圈結構

asdf

當 no 太大的時候, sum= 1 + 2 + ... + no
會出現 錯誤的答案,integer*2 2- bytes 的整數範圍是
-32768 ... +32767

4- bytes 的整數範圍是
-2147483648 ... +2147484647

以下的 示範程式,介紹三種回圈結構,如此就 夠用了


cpp 代码
  1. ! main()   
  2. implicit none   
  3. integer no, sum, i   
  4.   
  5. ! loop for sum= 1 + 2 + ... + no   
  6. no= 100000000   
  7.   
  8. sum= 0   
  9. do i=1, no, 1   
  10.     sum= sum + i   
  11. end do  
  12. print *, 'do loop, sum= ', sum   
  13. ! -----------------------------------------------   
  14.   
  15. sum= 0   
  16. i= 1   
  17. while (i <= no) do ...   
  18. do while (i <= no)   
  19.     sum= sum + i   
  20.     i= i + 1   
  21. end do  
  22. print *, 'do while(), sum= ', sum + 1   
  23. ! -----------------------------------------------   
  24.   
  25. ! repeat ... until (i > no)   
  26. sum= 0   
  27. i= 1   
  28. do  
  29.     sum= sum + i   
  30.     i= i + 1   
  31.   
  32.     ! if (i > no) exit   
  33.   
  34.     if (i .GT. no) then   
  35.        exit   
  36.     end if  
  37. end do  
  38. print *, 'repeat ... until(), sum= ', sum + 2   
  39.   
  40. end !of main()   
  41. ! -----------------------------------------------   

asdf

你可能感兴趣的:(fortran)