Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Использование оператора continue




Использование оператора continue

Иногда требуется, чтобы повторение цикла осуществлялось с более раннего оператора его тела. То есть на данной конкретной итерации может требоваться продолжить выполнение цикла без обработки остального кода в его теле. По сути, это означает переход в теле цикла к его окончанию. Для выполнения этого действия служит оператор continue.

В циклах while и do-while оператор continue вызывает передачу управления непосредственно управляющему условному выражению цикла. В цикли for управление передается вначале итерационной части цикла for, а потом условному выражению. Во всех этих трех циклах любой промежуточный код пропускается.

Ниже приведен пример программы, в которой оператор continue используется для вывода двух чисел в каждой строке.

// Демонстрация применения оператора continue.

class Continue {

public static void main(String args[]) {

for(int i=0; i< 10; i++) {

System. out. print(i + " " );

if (i%2 == 0) continue;

System. out. println(" " );

}

}

}

В этом коде операция % служит для проверки четности значения переменной i. Если оно четное, выполнение цикл продолжается без перехода к новой строке. Программа генерирует следующий вывод:

0 1

2 3

4 5

6 7

8 9

Как и оператор break, оператор continue может содержать метку содержащего его цикла, который нужно продолжить. Ниже показан пример программы, в которой оператор continue применяется для вывода треугольной таблицы умножения чисел от 0 до 9.

// Использование оператора continue с меткой.

class ContinueLabel {

public static void main(String args[]) {

outer: for (int i=0; i< 10; i++) {

for(int j=0; j< 10; j++) {

if(j > i) {

System. out. println();

continue outer;

}

System. out. print(" " + (i * j));

}

}

System. out. println();

}

}

В этом примере оператор continue прерывает цикл подсчета значений j и продолжает цикл со следующей итерации цикла подсчета i. Вывод этой программы имеет следующий вид:

0

0 1

0 2 4

0 3 6 9

0 4 8 12 16

0 5 10 15 20 25

0 6 12 18 24 30 36

0 7 14 21 28 35 42 49

0 8 16 24 32 40 48 56 64

0 9 18 27 36 45 54 63 72 81

Удачные применения оператора continue встречаются редко. Одна из причин состоит в том, что Java предлагает широкий выбор операторов цикла, удовлетворяющих требованиям большинства приложений. Однако в тех случаях, когда требуется более раннее начало новой итерации, оператор continue предоставляет структурированный метод выполнения этой задачи.

Оператор return

Последний из управляющих операторов – return. Его используют для выполнения явного возврата из метода. То есть он снова передает управление объекту, который вызвал данный метод. Как таковой этот оператор относится к операторам перехода.

Оператор return можно использовать в любом месте метода для возврата управления тому объекту, который вызвал данный метод. Таким образом, оператор return немедленно прекращает выполнение метода, в котором он находится. Следующий пример иллюстрирует это. В данном случае оператор return приводит к возврату управления системе времени выполнения Java, поскольку именно она вызывает метод main().

// Демонстрация использования оператора return.

class Return {

public static void main(String args[]) {

boolean t = true;

System. out. println(" До выполнения возврата. " );

if(t) return; // возврат к вызывающему объекту

System. out. println(" Этот оператор выполняться не будет. " );

}

}

Вывод этой программы имеет вид:

До выполнения возврата.

Как видите, заключительный оператор println() не выполняется. Сразу после выполнения оператора return программа возвращает управление вызывающему объекту.

И последний нюанс: в приведенной программе использование оператора if(t) обязательно. Без него компилятор Java сигнализировал бы об ошибке “unreachable code” (“недостижимый код”), поскольку выяснил бы, что последний оператор println() никогда не будет выполняться. Во избежание этой ошибки в демонстрационном примере пришлось ввести компилятор в заблуждение с помощью оператора if.

Разработка классов на Java

Мы пользовались классами с самого начала этой книги. Однако до сих пор применялась только наиболее примитивная форма класса. Классы, созданные в предшествующих главах, служили только в качестве контейнеров метода main(), который мы использовали для ознакомления с основами синтаксиса Java. Как вы вскоре убедитесь, классы предоставляют значительно больше возможностей, чем те, которые были представлены до сих пор.

Вероятно, наиболее важное свойство класса то, что он определяет новый тип данных.

После того как он определен, этот новый тип можно применять для создания объектов данного типа. Таким образом, класс – это шаблон объекта, а объект – это экземпляр класса. Поскольку объект является экземпляром класса, термины объект и экземпляр часто используются попеременно.

Общая форма класса

При определении класса объявляют его конкретную форму и сущность. Это выполняется путем указания данных, которые он содержит, и кода, воздействующего на эти данные. Хотя очень простые классы могут содержать только код или только данные, большинство классов, применяемых в реальных программах, содержит оба эти компонента.

Как будет показано в дальнейшем, код класса определяет интерфейс к его данным.

Для объявления класса служит ключевое слово class. Использованные до сих пор классы в действительности представляли собой очень ограниченные примеры полной формы. Классы могут быть (и обычно являются) значительно более сложными. Упрощенная общая форма определения класса имеет следующий вид:

class имя_класса {

тип переменная_экземпляра1;

тип переменная_экземпляра2;

//...

тип переменная_экземпляраN;

тип имя_метода1(список_параметров) {

// тело метода

}

тип имя_метода2(список_параметров) {

// тело метода

}

//...

тип имя_методаN(список_параметров) {

// тело метода

}

}

Данные, или переменные, определенные внутри класса, называются переменными экземпляра. Код содержится внутри методов. Определенные внутри класса методы и переменные вместе называют членами класса. В большинстве классов действия с переменными экземпляров и доступ к ним выполняются через методы, определенные в этом классе. Таким образом, в общем случае именно методы определяют способ использования данных класса.

Определенные внутри класса переменные называют переменными экземпляра, поскольку каждый экземпляр класса (т. е. каждый объект класса) содержит собственные копии этих переменных. Таким образом, данные одного объекта отделены и отличаются от данных другого объекта. Вскоре мы вернемся к рассмотрению этой концепции, но она слишком важна, чтобы можно было обойтись без хотя бы предварительного ознакомления с нею.

Все методы имеют ту же общую форму, что и метод main(), который мы использовали до сих пор. Однако большинство методов не будут указаны как static или public. Обратите внимание, что общая форма класса не содержит определения метода main(). Классы Java могут и не содержать этот метод. Его обязательно указывать только в тех случаях, когда данный класс служит начальной точкой программы. Более того, аплеты вообще не требуют использования метода main().

Обратите внимание, что объявление класса и реализация методов хранятся в одном месте, а не определены отдельно. Иногда эта особенность приводит к созданию очень больших файлов. java, поскольку любой класс должен быть полностью определен в одном файле исходного кода. Такая архитектура была принята для Java умышленно, поскольку разработчики посчитали, что хранение определения, объявления и реализации в одном файле упрощает сопровождение кода в течение длительного периода его эксплуатации.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...