Python の for-else ステートメントに相当する Fortran はありますか?
たとえば、次の例では、数値のリストをさまざまな範囲に並べ替えます。Python では、次のようになります。
absth = [1, 2, 3, 4, 5]
vals = [.1, .2, .5, 1.2, 3.5, 3.7, 16.8, 19.8, 135.60]
counts = [0] * len(absth)
for v in vals:
for i, a in enumerate(absth):
if v < a:
counts[i] += 1
break
else:
counts[-1] += 1
Fortran では、これは同じように機能します。
do iv = 1, nvals
is_in_last_absth = .true.
do ia = 1, nabsth - 1
if vals(iv) < absth(ia) then
counts(ia) = counts(ia) + 1
is_in_last_absth = .false.
exit
end if
end do
if (is_in_last_absth) then
counts(nabsth) = counts(nabsth) + 1
end if
end do
しかし、それを使用して Pythonis_in_last_absth
のようなものに置き換える必要がない方法はありますか?else