Перебор многомерных массивов в цикле



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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!