数値を期待する read ステートメントがあります。非常に単純なコード例です。
program test
integer var
read(*,*) var
end
問題は、気が散っているため、通常は文字列 (つまり、yes ) を入力することです。コードが完全に停止するのを防ぎ、代わりに「入力した値が正しくありません」タイプのエラー メッセージを表示するにはどうすればよいですか。再試行しますか?
私は次のようなことを考えています:
program test
integer var
10 read(*,*) var
if (var.not.a.number) then
write(*,*)'You've entered an incorrect value. Try again'
goto 10
endif
end
そのvar.not.a.number条件はどのようになりますか? 私はgfortran
Ubuntuでコンパイルするために使用します。
編集:ありがとうございました!HPM の 3 番目のオプションが最も単純だったので、最終的に実装することになりました。
program test
integer var,iostat,ios
10 read(*,*,iostat=ios) var
if (ios.ne.0) then
write(*,*)'You've entered an incorrect value. Try again'
goto 10
endif
end
User7391
すべてのコードを書く努力をしてくれた人に特に感謝します!