! ! FizzBuzz FizzBuzz判定を文字列で返す関数を作成した例 ! 参考: http://hydro.iis.u-tokyo.ac.jp/~agata/doc/program_semi/semi7.html PROGRAM main CHARACTER A*8, fizzbuzz*8 ! 先にFUNCTIONの型を宣言 WRITE(*,'(A)', advance='no') 'FizzBuzz to N? : ' READ(*,*) N DO 10 I=1,N A=fizzbuzz(I) IF (LGT(A, '')) THEN WRITE(*,'(A8A)', advance='no') A, ', ' ELSE WRITE(*,'(I3A)', advance='no') I, ', ' ENDIF 10 CONTINUE END PROGRAM main CHARACTER FUNCTION fizzbuzz(n) fizzbuzz = '' IF (MOD(n,3) .EQ. 0) THEN ! MOD(N,M)で余り fizzbuzz = 'Fizz' ENDIF IF (MOD(n,5) .EQ. 0) THEN !ans = trim(fizzbuzz)//'Buzz' fizzbuzz = trim(fizzbuzz)//'Buzz' ! trim()しないと空白が残る ENDIF END FUNCTION fizzbuzz