Главная » Java, Структуры данных и алгоритмы » Операторы организации выполнения алгоритма Java

0

В языке Java существуют операторы, позволяющие явно изменять последовательность выполнения программы.

Оператор return

Если при объявлении метода указывается тип возвращаемого значения void, то алгоритм возвращается в вызвавший его метод после последней строки своего кода либо По оператору return без аргументов. Если же при объявлении метода указывается тип возвращаемого значения, то метод представляет собой функцию, и в конце выполнения должен возвращать значение функции в качестве аргумента оператора return. Ниже представлен (верный) пример возвращения из функции:

// Проверка наличия дня рождения

public boolean checkBDay (int ctite) { if (date == BirthdayList.MIKES_BDAY)

return true;

return false;

}

Из примера видно, что оператор return должен выполняться внутри функции последним, так как в противном случае программа не сможет перейти к остальной части кода.

Обратите внимание на существенную разницу между тем случаем, когда оператор является последней строкой кода, которая выполняется методом, и когда оператор записан в последней строке кода самого метода. В нашем примере строка return true; не является последней строкой кода функции, однако она может стать последней выполненной строкой (если значение условия, содержащего date, будет равно true). Подобный оператор явно прерывает выполнение алгоритма метода. Существуют два других оператора перехода, которые используются внутри операторов цикла и переключения.

Оператор break

Оператор break записывается следующим образом: break;

Оператор используется для прекращения выполнения операторов switch, for, while или do-while и выполняется следующим образом: когда в алгоритме встречается оператор break, программа переходит к строке, следующей, после тела оператора, содержащего этот оператор break.

Другая форма оператора break содержит метку и применяется для немедленного выхода из помеченных операторов цикла или оператора переключения. В этом случае оператор записывается в следующей форме:

break <label>;

Метка <label> является идентификатором и указывается перед оператором цикла или переключения, в результате чего появляется помеченный оператор. В языке Java не существует других безусловных («goto») операторов перехода.

Использование оператора break с меткой продемонстрируем на следующем примере:

public static boolean hasZeroEntry (int[ ] [ ] a) {

boolean foundFlag = false; zeroSearch:

for (int i=0; i<a.length; i++) { for (int j=0; 1<a[i].length; j++) {

if (а[Щ] == 0) {

foundFlag = true; break zeroSearch;

}

}

} v

return fpundFlag;

}

В данном примере используются массивы, которые будут рассмотрены в разделе 1.5.

Оператор continue

Еще одним оператором, явно изменяющим последовательность выполнения алгоритма Java-программы, является оператор continue, который записывается следующим образом:

continue [<label>];

Метка <label> является идентификатором, с помощью которого помечается оператор цикла. Как отмечалось выше, в языке Java не Существует безусловных («goto») операторов перехода. Таким образом, оператор continue используется только внутри операторов цикла (for, while или do-while) и прекращает выполнение оставшихся шагов текущей итерации цикла, осуществляя немедленный переход к следующей итерации. Ниже показан пример использования оператора continue.

// Производит подсчет, сколько раз целое число х встречается

// в массиве а.

public static int countlnteger (int[ ] a, int x) {

int cbunt = 0;

for (int i=0; ka.length; i++) { if (a[i] !=x) continue; count++;

}

return count;

}

В данном примере используется массив, рассматриваемый в следующем разделе.

Источник: Гудрич М.Т. Г93 Структуры данных и алгоритмы в Java / М.Т. Гудрич, Р. Тамассия; Пер. с англ. A.M. Чернухо. — Мн.: Новое знание, 2003. — 671 е.: ил.

По теме:

  • Комментарии