Извините за нубский вопрос, но мне нужна помощь в выяснении того, как вернуть выполнение обратно к началу подпрограммы после завершения логического блока, проверяющего ввод пользователя.
Program FibSequence
Integer(2) :: n_terms
print*, "Please Enter number 0-99"
read*,n_terms
call check_term()
End Program
Subroutine check_term()
if n_terms <= 0 then
!print stuff
read*, n_terms
return
else if n_terms > 99 then
!print stuff
read*, n_terms
return
else
print*, "you have chosen " , n_terms
end
Программа выполняется успешно, но не делает того, что должна делать.
Я подозреваю, что программа вводит проверку тогда, когда она это делает, если число выбрано неправильно, так что число > 99 или ‹= 0, тогда оно «перечитывает» n_terms для пользовательского ввода, а затем возвращает выполнение в основную программу, что приводит к в завершении программы.
Результатом должно быть то, что когда число выбрано неправильно, подпрограмма запускается полностью СНОВА вместо перехода к следующей строке выполнения из основной, что было бы концом программы.
Помощь будет оценена спасибо!
check_term()
, чтобы указать успех или неудачу, чтобы вы знали, когда выйти из цикла. - person Carey Gregory   schedule 18.06.2020