continue x;//запустится итерация на внешнем цикле




...

}

Важно: нельзя задавать в качестве условия продолжения цикла while ключевое слово false по причине того, что итерации цикла не будут выполнены ни разу.

Рассмотрев выполнение цикла while, опишем цикл do-while.

Цикл с постусловием do-while – это цикл, который, как и цикл while, продолжает свое выполнение (запускает новые итерации цикла) до тех пор, пока выполняется условие его продолжения. Условие продолжения в do-while представляется по тем же правилам, что и в цикле while. Главное отличие while и do-while заключается в том, что цикл do-while – это цикл с постусловием. Понятие постусловие здесь обозначает то, что сперва выполняется итерация цикла, а затем проверяется условие продолжения цикла. Примером цикла do-while в реальной жизни может стать процесс выбора заготовки для изготовления какого-нибудь изделия – например процесс выбора досок для изготовления скворечника. Сперва берется доска, а затем проверяется, подходит ли доска для изготовления скворечника. Если доска подходит, то наш цикл завершается – мы выбрали нужную доску. Если же доска не подходит, то мы повторяем итерацию цикла для другой доски.

Цикл do-while имеет следующую конструкцию:

Синтаксис цикла while на языке Java имеет следующий вид:

Листинг 3 – While

do {//переменная a описана вне представленного листинга

a+=a; //прибавление значения a к a и сохранение полученного результата в a.

} while (a <1000);

Важно: после логического выражения ставится точка с запятой (см. листинг 3)!!!

Важно: в качестве условия продолжения цикла do-while можно писать ключевое слово falseв таком случае цикл проведет одну итерацию.

Наконец, рассмотрим цикл со счетчиком for.

Цикл со счетчиком for – это цикл, которые продолжает свое выполнение (запускает новые итерации цикла) до тех пор, пока выполняется условие его продолжения (как и другие циклы). Ключевым отличием цикла for от циклов while и do-while является то, что в цикле for возможно создание и использование счетчика. Счетчиком в данном случае может выступать любая переменная, которая в процессе работы цикла будет изменять свое значение. Условием продолжения цикла for в данном случае будет выступать условие отношения переменной и какого-либо значения. Опишем, например, работу цикла for на примере пятидесяти отжиманий. Сперва инициализируется счетчик отжиманий – на момент начала цикла это число 0. Затем описывается условие продолжения работы цикла – пока отжиманий меньше пятидесяти. Наконец, описывается изменение счетчика после выполнения итерации цикла – значение счетчика отжиманий увеличивается на 1. Таким образом цикл заверит работу в тот момент, когда счетчик отжиманий станет равен пятидесяти.

Цикл for имеет следующую конструкцию:

Синтаксис цикла for на языке Java имеет следующий вид:

Листинг 4 – For

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

a+=a; //переменная a объявлена вне листинга

}

Описание цикла for состоит из трех частей – инициализация счетчика, логическое выражение и изменение счетчика.

Инициализация счетчика происходит перед выполнением первой итерации цикла.

Проверка продолжения работы цикла происходит перед выполнением каждой итерации и представляет собой логическое выражение. Изменение счетчика происходит после проведения итерации.

Важно: объявление переменной счетчика может происходить перед описанием цикла:

Листинг 5 – For с объявлением счетчика перед циклом

int i;

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

a+=a; //переменная a объявлена вне листинга

}

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

Листинг 6 – For с объявлением инициализацией счетчика вне описания цикла

int i=0;

for (;i<10;i++) {

a+=a; //переменная a объявлена вне листинга}

Кроме того, любая часть описания цикла может не описана вообще – например, мы можем не описывать условие продолжения цикла и в таком случае вместо условия продолжения цикла будет использовано значение true.

Важно: части описания цикла for (инициализация счетчика, условие продолжения цикла и изменение счетчика) не связаны между собой – это значит, что логическое выражение может не содержать в себе счетчик, и вместо счетчика может изменяться другая переменная:

Листинг 7 – For c «не связанным описанием»

int i;

int x=7;

int y=9;

for (i=0; x<10; y++) {

a+=a; //переменная a объявлена вне листинга

}

Важно: циклы, условия и другие блоки кода могут быть вложенными! Это значит, например, что внутри блока for может быть расположен другой цикл, условие или иной блок:

Листинг 7 – Вложенный цикл

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

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

a++;//переменная объявлена вне листинга

}

При работе с циклами возможно использование ключевых слов break и continue.

Ключевое слово break работает аналогично тому, как оно работает в блоке switch – т.е. прерывает выполнение цикла:

Листинг 8 – Break

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

if (i==4)

break;//при i=4 цикл прекратит работу

}

Ключевое слово break может быть использовано совместно с меткой для того, чтобы завершить несколько вложенных циклов:

Листинг 9 – Break с меткой

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

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

if (j==4)

break x;//при j=4 оба цикла завершатся

}

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

Листинг 10 – Continue

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

for (int j=0;j<100;j++)

if (j==5)

continue x;//запустится итерация на внешнем цикле

При работе с циклами, условиями и рядом других конструкций следует учитывать понятие видимости переменной.

Работая над программой, мы может работать в контексте класса, метода или контекста блока кода. Описывая методы или не переменные внутри класса (примером может послужить метод main или переменные, объявленные вне метода, но в классе), мы работаем в контексте класса.

Описывая работу метода, мы работаем в контексте метода. Работая внутри блока if, for, while и т.п. мы имеем ввиду контекст кода.

Суть видимости переменной опирается на контексты. Переменные, объявленные в вышестоящем контексте. Например, переменные, объявленные в контексте класса, видны внутри методов и блоков. Переменные, которые объявленные в нижестоящем контексте, не видны в вышестоящем контексте. Например, переменные, объявленные внутри блока if, не видны за его пределами. Если переменные из разных контекстов имеют одинаковое имя, то внутри нижестоящего контекста идет работа с переменной нижестоящего контекста. Такая переменная называется локальной.

Задание: повторить материал ИТ-школы Samsung, решить не менее 5 задач блока For, не менее 5 задач блока While из задачника Абрамяна, решить задания электронной системы обучения пунктов 1.7 (включая дополнительные)



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-03-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: