Перебор многомерных массивов в цикле
1 2 3 4 5 6 7 8 9 10 11 12 13 | int[][] nums = new int[][] { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; for (int i = 0; i < nums.length; i++){ for(int j=0; j < nums[i].length; j++){ System.out.printf("%d ", nums[i][j]); } System.out.println(); } |
Сначала создается цикл для перебора по строкам, а затем внутри первого цикла создается внутренний цикл для перебора по столбцам конкретной строки. Подобным образом можно перебрать и трехмерные массивы и наборы с большим количеством размерностей.
Методы
Если переменные и константы хранят некоторые значения, то методы содержат собой набор операторов, которые выполняют определенные действия.
Общее определение методов выглядит следующим образом:
1 2 3 | [модификаторы] тип_возвращаемого_значения название_метода ([параметры]){ // тело метода } |
Модификаторы и параметры необязательны.
По умолчанию главный класс любой программы на Java содержит метод main, который служит точкой входа в программу:
1 2 3 | public static void main(String[] args) { System.out.println("привет мир!"); } |
Ключевые слова public и static являются модификаторами. Далее идет тип возвращаемого значения. Ключевое слово voidуказывает на то, что метод ничего не возвращает.
Затем идут название метода - main и в скобках параметры метода - String[] args. И в фигурные скобки заключено тело метода - все действия, которые он выполняет.
Создадим еще несколько методов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class Program{ public static void main (String args[]){ } void hello(){ System.out.println("Hello"); } void welcome(){ System.out.println("Welcome to Java 10"); } } |
Здесь определены два дополнительных метода: hello и welcome, каждый из которых выводит некоторую строку на консоль. Методы определяются внутри класса - в данном случае внутри класса Program, в котором определен метод main.
|
|
Но если мы скомпилируем и запустим данную программу, то мы ничего не увидим на консоли. В примере выше мы определили два метода, но мы их нигде не вызываем. По умолчанию в программе Java выполняется только метод main и все его содержимое. Поэтому, если мы хотим, чтобы другие методы тоже выполнялись, их надо вызвать в методе main.
Вызов метода осуществляется в форме:
1 | имя_метода(аргументы); |
После имени метода указываются скобки, в которых перечисляются аргументы - значения для параметров метода.
Например, определим и выполним несколько методов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class Program{ public static void main (String args[]){ hello(); welcome(); welcome(); } static void hello(){ System.out.println("Hello"); } static void welcome(){ System.out.println("Welcome to Java 10"); } } |
В методе main вызывается один раз метод hello и два раза метод welcome. В этом и заключается одно из преимуществ методов: мы можем вынести некоторые общие действия в отдельный метод и затем вызывать многократно их в различных местах программы. Поскольку оба метода не имеют никаких параметров, то после их названия при вызове ставятся пустые скобки.
|
|
Также следует отметить, что чтобы вызвать в методе main другие методы, которые определены в одном классе с методом main, они должны иметь модификатор static.
В итоге после компиляции и выполнения программы мы увидим на консоли:
Hello
Welcome to Java 10
Welcome to Java 10
Параметры методов
С помощью параметров мы можем передать в методы различные данные, которые будут использоваться для вычислений. Например:
1 2 3 4 5 | static void sum(int x, int y){ int z = x + y; System.out.println(z); } |
Данная функция принимает два параметра - два числа, складывает их и выводит их сумму на консоль.
А при вызове этого метода в программе нам необходимо передать на место параметров значения, которые соответствуют типу параметра:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public class Program{ public static void main (String args[]){ int a = 6; int b = 8; sum(a, b); // 14 sum(3, a); // 9 sum(5, 23); // 28 } static void sum(int x, int y){ int z = x + y; System.out.println(z); } } |
Поскольку метод sum принимает два значения типа int, то на место параметров надо передать два значения типа int. Это могут быть и числовые литералы, и переменные типов данных, которые представляют тип int или могут быть автоматически преобразованы в тип int. Значения, которые передаются на место параметров, еще называются аргументами. Значения передаются параметрам по позиции, то есть первый аргумент первому параметру, второй аргумент - второму параметру и так далее.
|
|
Рассмотрим другой пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class Program{ public static void main (String args[]){ display("Tom", 34); display("Bob", 28); display("Sam", 23); } static void display(String name, int age){ System.out.println(name); System.out.println(age); } } |
Метод display принимает два параметра. Первый параметр представляет тип String, а второй - тип int. Поэтому при вызове метода вначале в него надо передать строку, а затем число.
Параметры переменной длины
Метод может принимать параметры переменной длины одного типа. Например, нам надо передать в метод набор числел и ычислить их сумму, но мы точно не знаем, сколько именно чисел будет передано - 3, 4, 5 или больше. Параметры переменной длины позволяют решить эту задачу:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public class Program{ public static void main (String args[]){ sum(1, 2, 3); // 6 sum(1, 2, 3, 4, 5); // 15 sum(); // 0 } static void sum(int ...nums){ int result =0; for(int n: nums) result += n; System.out.println(result); } } |
Троеточие перед названием параметра int ...nums указывает на то, что он будет необязательным и будет представлять массив. Мы можем передать в метод sum одно число, несколько чисел, а можем вообще не передавать никаких параметров. Причем, если мы хотим передать несколько параметров, то необязательный параметр должен указываться в конце:
|
|
Дата добавления: 2019-02-22; просмотров: 547; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!