- Лекция 3. Управляющие конструкции языка Java
- Область видимости переменной
- Условный оператор if
- Оператор switch
- Функции в Java
- Отступление, как форматировать строки в Java
- Структура функции
- Зачем нужны функции
- Структура функции
- Прототип функции
- Тип результата (return type)
- Имя функции (function name)
- Список параметров (parameter list)
- Тело функции (body)
- Как создать функцию в Java
- Что такое функция?
- Создание функции в Java
- Пример функции
- Некоторые полезные советы
- Итог
- Создание функций на языке Java
- Создание функции, которая возвращает
Лекция 3. Управляющие конструкции языка Java
В отличие от Python у каждой переменной Java указывается тип, и переменная может хранить значения толького этого типа. Например, переменная типа int может хранить значения только типа int :
int x = 42; // хорошо x = "abc"; // ошибка компиляции, программа даже не запустится. int x = "abc"; //тоже ошибка
При заведении переменной сначала указывается ее тип, потом имя:
int x; String s; boolean b; int p, q, r; // можно сразу несколько int pp = 0, qq = 0, r = 0;
Можно сразу инициализировать значение переменной, указав начальное значение:
int x = 42; //инициализатор String s = "abc";
Пока вы не присвоите переменной значение, из нее нельзя читать значение. Это тоже ошибка компиляции:
String s; System.out.println(s); //распечатать значение — ошибка //variable s might not have been initialized int x; if (. ) x = 10; System.out.println(x); //ошибка, могло не быть инициализировано
Область видимости переменной
Переменная в Java доступна с момента определения до конца блока, в котором она определена. Блок — это часть программы между фигурными скобками:
public static void main(String[] args) < int x = 1; // z недоступна, она будет определена позже if (x < 10) < int y = 20; System.out.println(x + y); //доступны x и y >int z = 2; System.out.println(x, z); //y недоступна >
Условный оператор if
Если есть логическое выражение УСЛОВИЕ (выражение типа boolean и только его), его можно вставить в оператор if:
if (УСЛОВИЕ) < // фигурная скобка через пробел после ) //операторы с отступом в 4 пробела >else < //без отступа относительно if //операторы с отступом в 4 пробела >//без отступа относительно if if (УСЛОВИЕ) < >// else не обязательный
В отличие от python, расстановка отступов не влияет на работу программы, отступы ставятся для читаемости текста, они важны, ставьте их, пожалуйста, правильно.
Если в блоке операторов внутри if ровно один оператор, можно не ставить фигурные скобки (я рекомендую не ставить в этой ситуации):
В Java нет elif . Как поступить без него?
if (x < 0) sout("отрицательный"); //sout = System.out.println() else < if (x == 0) sout("ноль"); else < if (x >1_000_000) sout("очень большой"); else sout("положительный"); > >
if (x < 0) sout("отрицательный"); //sout = System.out.println() else if (x == 0) sout("ноль"); else if (x >1_000_000) sout("очень большой"); else sout("положительный");
Получается, что else if это как бы и есть elif из Python.
Оператор switch
(Кстати. Вышла 17 Java. Обновитесь. 17 — релиз с длительной поддержкой)
Этот оператор позволяет выбрать один вариант действий в зависимости от значения выражения. Посмотрим только на новую версию switch, старую версию switch (выражение) с двоеточием поле case посмотрите сами.
Функции в Java
Пример программы с функциями
public class Task public static void main(String[] args) // главная функция, с нее начинается программа // давайте договоримся делать функцию main первой sout(sum(2, 3)); //5 int z = sum(2, 3); //sum(2, "abc"); //ошибка, аргументы указаны как тип int sout(hello("Ilya")); //"Hello, Ilya" printHello("Ilya")); //ok //sout(printHello("Ilya")); //нечего печатать, ошибка //void x = printHello("Ilya"); //ошибка, ничего не вернется > private static ТИП-РЕЗУЛЬТАТА ИМЯ-ФУНКЦИИ(АРГУМЕНТЫ С ТИПАМИ) тело функции > private static int sum(int x, int y) return x + y; // оператор return аналогичен python //возвращаемое выражение должно иметь тип, указанный в //заголовке функции > private static String hello(String name) return "Hello, " + name + "!"; > private static void printHello(String name) //void — ничего sout("Hello, " + name + "!"); > >
Отступление, как форматировать строки в Java
Нужен аналог f-строк в Python. f»Hello, !»
String name = "Ilya"; String.format("Hello, %s!", name); //это получается тип String sout(String.format("Hello, %s!", name)); String hello = String.format("Hello, %s!", name); String.format("x = %f", 4.2); String.format("x = %.2f", 4.2); //.2 два знака после запятой //%s - подставь строку //%f - подставь вещественно число
Структура функции
Функция — некий «чёрный ящик». В этот ящик попадают входные данные, над ними производятся некие манипуляции, а на выходе из этого ящика мы получаем результат.
Если вы решали задачник первой недели, вы уже успели познакомиться с функциями GetInt () , GetString () , printf () . Каждая из них получает на вход определенные данные, выполняет определенные действия и возвращает определенный результат.
Зачем нужны функции
- Упорядочивание кода. Код гораздо проще поддерживать, если он разбит на функции, и каждая из них делает чётко определенную небольшую часть работы.
- Упрощение кода. Вам не нужно знать, как работает функция, главное — результат её работы. Это упрощает понимание большой программы.
- Повторное использование. Если вам нужно сделать подобные действия в различных частях программы, можно написать всего одну функцию, и использовать её многократно.
Структура функции
Функции имеют следующую структуру:
#include <stdio.h> int cube(int input); //Прототип функции cube int main(void) < int x = 2; printf("x is %i\n", x); x = cube(x); printf("x is %i\n", x); >int cube(int input)
Прототип функции
Прототипом функции (header) называют объявления заголовка функции, без тела. Прототип указывает компилятору, что существует функция с определенным именем, типом результата и списком параметров, тело которой будет описано позже в коде. То есть прототип состоит из имени функции, списка параметров и возвращаемого типа.
Тип результата (return type)
На Си нужно всегда указывать тип результата. То есть мы должны явно указать, какого типа будет то значение, которое должна вернуть функция. В примере выше, функция возвращает куб целого числа. Результат относится к типу int .
Имя функции (function name)
Любое название функции. Желательно называть функции так, чтобы было понятно, что они делают. В примере функция называется cube.
Список параметров (parameter list)
Перечень входных данных для функции. Функция может не иметь параметров, может иметь один или несколько параметров. Для каждого параметра нужно указать его имя и тип. В примере функция принимает единственный параметр — целое число int input .
Тело функции (body)
В теле описаны действия, которые выполняет функция. Слово return указывает на конец работы функции и указывает значение, которое возвращает функция в качестве результата её работы (значение переменной output в примере). Функция может и не возвращать никакого результата.
Как создать функцию в Java
Узнайте, как создать функцию в Java и улучшить структуру своего кода с нашей пошаговой инструкцией для новичков!
В данной статье мы разберемся, как создать функцию в Java. Функции (или методы) являются важными составляющими любой программы, так как они позволяют разбить сложные задачи на более мелкие подзадачи и повторно использовать код.
Что такое функция?
Функция — это набор инструкций, который может быть вызван по имени. Функции могут принимать параметры (аргументы) и возвращать результат. В Java функции называются методами и объявляются внутри классов.
Создание функции в Java
Для создания функции в Java, следует выполнить следующие шаги:
- Определить имя функции
- Определить тип возвращаемого значения
- Определить параметры (если есть)
- Написать тело функции
Пример функции
Давайте создадим простую функцию, которая принимает два числа и возвращает их сумму:
public class Main < public static int addNumbers(int num1, int num2) < int sum = num1 + num2; return sum; >public static void main(String[] args) < int result = addNumbers(5, 7); System.out.println("Сумма чисел 5 и 7 равна: " + result); >>
В этом примере мы создали функцию addNumbers , которая принимает два параметра типа int и возвращает результат типа int . В main методе мы вызываем функцию addNumbers , передаем ей числа 5 и 7, и выводим результат на экран.
Некоторые полезные советы
- Названия функций должны быть говорящими и отражать их назначение.
- Старайтесь делать функции небольшими и выполняющими одну конкретную задачу.
- Используйте параметры для передачи данных в функцию и возвращаемые значения для получения результатов.
- Помните, что функции в Java должны быть объявлены внутри классов.
Итог
Теперь вы знаете, как создать функцию в Java, и можете использовать этот знание для структурирования и улучшения своего кода. Практикуйтесь на примерах и создавайте свои собственные функции для решения различных задач. Удачи вам в изучении Java! 😉
Не забудьте посетить нашу онлайн-школу по Java-разработке, чтобы получить еще больше знаний и практических навыков.
Создание функций на языке Java
Функция — это небольшая программа, которая выполняет определённые действия при вызове функции по имени.
В языке Java существуют свои встроенные и готовые к использованию функции, но никто не отменял пользовательских функций.
Пользовательская функция — это функция созданная разработчиком для конкретной задачи.
Написание функций относят к процедурному подходу в программировании.
Чаще всего в функции помещают повторяющийся программный код. Для того, чтобы не писать одни и те же строчки кода, их выносят в отдельный блок, а затем вызывают по имени в основном коде программы когда это необходимо.
Различают два основных вида функций:
Также функции можно разделить на две категории:
Запомните: переменная созданная в функции, умирает после завершения функции и более не существует!
Создание функции, которая возвращает
Данный тип функций является наиболее используемым, так как почти всегда требуется что-то посчитать, произвести некое преобразование и тому подобное, следовательно полученный результат необходимо использовать вне функции. Всё что было создано в функции в конечном счёте умирает в ней же, в связи с этим необходимо вернуть результат в основной код программы.
Сделать это помогает оператор return
Создадим функцию, которая вернёт значение переменной и присвоит переменной в основном коде это значение.