Fortran続きです。dataで配列の初期化を行います。
takk@deb9:~$ cat data.f90 program main integer a(10),s data a /5,5,5,5,5,5,5,5,5,5/ s = 0 write(*,*) a(3) do i = 1,10 s = s + a(i) end do write(*,*) s stop end takk@deb9:~$
takk@deb9:~$ gfortran data.f90 takk@deb9:~$ ./a.out 5 50 takk@deb9:~$
値が同じならまとめて記述することもできます。
takk@deb9:~$ cat data.f90 program main integer a(10),s data a /5,5,5,5,5,5,5,5,5,5/ s = 0 write(*,*) a(3) do i = 1,10 s = s + a(i) end do write(*,*) s stop end takk@deb9:~$ gfortran data.f90 takk@deb9:~$ ./a.out 5 50 takk@deb9:~$
初期値を設定したい配列が複数あるときは、カンマで区切って記述できます。
takk@deb9:~$ cat data.f90 program main integer a(10),b(10),s data a,b /10*5,10*2/ s = 0 write(*,*) a(3) do i = 1,10 s = s + a(i) + b(i) end do write(*,*) s stop end takk@deb9:~$ gfortran data.f90 takk@deb9:~$ ./a.out 5 70 takk@deb9:~$
dataを使わず型宣言で初期化することもできます。
takk@deb9:~$ cat arr.f90 program main integer :: a(10) = (/1,2,3,4,5,6,7,8,9,10/) integer s s = 0 write(*,*) a(3) do i = 1,10 s = s + a(i) end do write(*,*) s stop end takk@deb9:~$ gfortran arr.f90 takk@deb9:~$ ./a.out 3 55 takk@deb9:~$
コメント