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:~$


コメント