Подпрограмма - это отдельная часть программы, имеющая имя и решающая свою отдельную задачу. Располагается подпрограмма в начале основной программы и может быть запущена (вызвана) из основной программы по указанию имени
Использование подпрограмм позволяет избежать дублирования кода, в случае если необхоидмо один и тот же код писать в разных местах программы.
Библиотеки, которые импортируются в программу (например, математическая библиотека Math) состоят из подпрограмм, которые уже кем-то составлены. Программистам не нужно думать о том, какие алгоритмы в них реализованы, а просто применяют их, задумываясь только о том, что именно они делают. Это большая экономия времени. Нет нужды писать алгоритм, который уже был кем то написан.
Каждая подпрограмма
должна решать только одну задачу, либо только что-то вычислять, либо выводить какие-либо данные, либо делать что-то еще.
Подпрограммы бывают двух типов -
процедуры и
функции
Подпрограммы-процедуры выполняют некоторые действия, например, выводят результат на экран в определенном виде (простой пример, оператор
println()
- это стандратная подпрограмма-процедура, которая выводит на экран информацию)
Подпрограммы-функции
возращают результат (число, символьную строчку и т.д.), который мы можем использовать в основном программе.
Давайте попробуем написать простую процедуру:
Предположим, что нам нужно выводить на экран строку "Error" каждый раз, когда в коде может возникнуть ошибка по вине пользователя (например, когда он вводит неверные данные)
Это можно сделать, написав оператор
System.out.println("Error");
А теперь представим, что такую строчку нужно вставить во многих местах программы. Конечно, можно везде ее просто написать. Но это решение имеет два недостатка.
1) данная строка будет храниться в памяти много раз
2) если мы захотим изменить вывод при ошибке, то придется менять эту строку по всей программе, что достаточно неудобно
Для таких случаев процедуры и нужны.
Программа с процедурой может выглядеть следующим образом:
...
static void printError() // описание процедуры
{
System.out.println("Error"); // тело процедуры - команды, которые будет выполнять процедура
}
public static void main(String[] args)
{
...
printError() // запуск процедуры на выполнение. Просто указываем имя процедуры, которую хотим выполнить
...
printError()
...
}
Процедура начинается со слова
void
. После имени процедуры записаны пустые скобки.
Все операторы, которые выполняются в процедуре, записываются с отступом.
Процедуры записываются до главной функции main()
Чтобы выполнить процедуру, в основной программе необходимо вызвать ее
по имени и не забыть написать скобки!
Вызывать процедуру в программе можно сколько угодно раз.