Оператор условия if… end if:
имя: if (логическое выражение) then операторы_1 else операторы_2 end if имя
(примеры изи сами)
Часть else и имя может отсутствовать: if (логическое выражение) then
операторы_1
… операторы_n
end if
Оператор множественного выбора select case и оператор stop:
select case (выражение)
case (множество_значений_1) операторы
case (множество_значений_2) операторы
case default
операторы
end select
Cначала вычисляется результат выражения. Затем происходит поиск полученного результата среди предложений case. Если результат найден во множестве значений, то выполняется соответствующая case-часть и оператор select case завершает работу.
Если значение не найдено, то выполняется часть case default, которая используется для всех остальных "непредвиденных" ситуаций.
program interval
integer k ! исследуемое число
write(*,"(A,X)") ''Enter number >= 0 ..."; read(*,*) k
select case(k)
case (0) write(*,*) ''0''
case (1:9) write(*,*) "1..9"
case (10:99) write(*,*) "10..99"
case (100:999) write(*,*) ''100..999''
case (1000:9999) write(*,*) "1000..9999"
case default
write(*, *) "-----OVERFLOW------"
end select
end
Иногда одним из действий, предусмотренных в условном операторе if или в операторе множественного выбора case, является прекращение выполнения программы. Оператор
stop 'Сообщение'
позволяет остановить выполнение программы и вывести на экран текстовое сообщение.
3. Do-циклы
имя do переменная = начальное значение, конечное значение, шаг
операторы ! ----- тело цикла
end do имя
Переменная, стоящая в операторе do, называется переменной цикла или управляющей переменной и должна иметь целый или вещественный тип.
Схема выполнения цикла следующая:
1. Переменной цикла присваивается начальное значение.
2. Выполняется тело цикла.
3. Переменная цикла увеличивается на шаг цикла.
4. Выполняется проверка; если переменная цикла больше конечного значения, то цикл завершает работу, иначе переход на шаг 2.
Пример. Вывести на экран числа, кратные трем, от 30 до 3 (в обратном порядке).
program multiple_3
integer k
do k=30,3,-3
write(*, '' (i4, \) ") k
end do
end
Конструкция do while:
имя цикла: do while (логическое условие)
операторы
end do имя цикла
Схема выполнения цикла do while следующая:
1.Вычисляется логическое условие.
2. Если результат условия истина, то выполняется тело цикла и происходит переход к п. 1, если ложь, то цикл завершает работу.
Пример. Найти сумму ряда 1/(k^2+1) пока слагаемое больше 0.001
program summa integer :: k=1
real :: sum=0, slag
slag=1.0/(k*k+1)
do while (slag>0.001)
sum=sum+slag
slag=1.0/(k*k+1)
end do
write(*,"(A,f9.6)") "summa = ",sum write(*,"(A,i4)") “k = ",k write(*,"(A,f9.6)") "slag = ",slag
end
- Для эффективного управления работой циклов используются два оператора - exit и cycle.
- Оператор exit (выход) прекращает выполнение цикла.
program use_exit
integer а, k
integer :: s=0
do k=1,5
write(*,"(A,N)") "Enter number..."; read(*,*) а
if (a<0) exit
s=s+a
end do
write(*,*) "Summa...",s
end
Оператор cycle используется для прекращения текущей итерации цикла и переходу к следующей итерации
Оператор безусловного перехода:
100 a=a+b
IF (a < 10) THEN GO TO 100