No Image

Цикл for java примеры

СОДЕРЖАНИЕ
0 просмотров
11 марта 2020

Конструкция for управляет циклами. Команда выполняется до тех пор, пока управляющее логическое выражение не станет ложным.

Цикл for является наиболее распространённым циклом в программировании, поэтому его следует изучить. Цикл for проводит инициализацию перед первым шагом цикла. Затем выполняется проверка условия цикла, и в конце каждой итерации происходит изменение управляющей переменной. Выглядит следующим образом:

Любое из трёх выражений цикла (инициализация, логическое выражение или шаг) можно пропустить. Перед выполнением каждого шага цикла проверяется условие цикла. Если условие окажется ложным, то выполнение продолжится с инструкции, следующей за конструкцией for.

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

Как правило, цикл for используют для перебора. В качестве имени первой переменной часто используют i (сокр. от init), но вы можете использовать любое имя.

В этом примере переменной x присваивается начальное значение, равное нулю. Затем выполняется проверка условия в логическом выражении (x кошках . Например, выводим чётные числа.

Если нужно выполнить несколько операторов в цикле, то используют фигурные скобки.

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

Когда мы объявляем переменную в первой части оператора for(int i = 0; . ), то область видимости переменной ограничена телом цикла и эта переменная не доступна на другом участке кода. Это подходящий вариант, если переменная больше нигде не используется. При этом переменная имеет область видимости и продолжительность существования, совпадающие с видимостью и продолжительностью жизни самого цикла. Вне цикла переменная прекратит своё существование.

Если управляющую переменную цикла нужно использовать в других частях приложения, то её не следует объявлять внутри цикла.

С другой стороны, если видимость переменной ограничена в пределах цикла, то не будет никакого конфликта, если вы будете использовать одинаковые имена переменных в разных циклах for, так как они не будут друг другу мешать.

Использование нескольких переменных

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

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

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

Части цикла могут быть пустыми.

Оставим пустым первое выражение.

В следующем примере нет инициализационного и итерационного выражения:

А можно вообще все три части оператора оставить пустыми:

В этом случае создаётся бесконечный цикл, который никогда не завершится. Практического смысла данный код не имеет.

Работа с массивами

С обычными числами обычно не работают в цикле for. Гораздо чаще цикл используют при работе с массивами.

Основная разница между ними, что массив может состоять из неупорядоченных чисел, а число элементов может быть разным. К счастью, у массива есть специальное свойство length – длина массива. Первый пример можно переписать следующим образом.

Мы создали массив из чисел от 0 до 9. Затем проходим в цикле, но на этот раз во втором операторе не используем число 9, а вычисляем длину массива. Такой гибкий подход позволят проделывать с массивами разные трюки – упорядочивать, сортировать, переворачивать и т.д.

Читайте также:  Что такое forkplayer для смарт тв

Например, если мы хотим вывести числа в обратном порядке, меняем логику следующим образом. Теперь нам нужно начинать вывод не с 0, а с 9, т.е. int i = 9 или int i = mice.length – 1 (для универсальности). Шаг будет не увеличиваться, а уменьшаться, значит – i–. А условием станет достижение 0, т.е. i >= 0. Проверяем.

Аналог foreach

Во многих языках существует более компактная форма for для перебора элементов массивов – foreach. Конструкция foreach не требует ручного изменения переменной-шага для перебора – цикл автоматически выполняет эту работу.

В Java решили не добавлять новое ключевое слово, а просто сделали усовершенствованный вид цикла for, который имеет вид:

Для сравнения напишем цикл для вычисления суммы значений элементов массива традиционным способом:

Этот код можно переписать следующим образом:

При прохождении цикла переменной i автоматически присваивается значение, равное значению следующего элемента массива nums. Таким образом, при первом прохождении переменная i содержит значение 1, при втором – 2 и т.д. Кроме того при таком способе исключается возможность ошибок выхода за пределы массива.

Для этого способа можно использовать массив или любой класс с интерфейсом Iterable.

Можно прервать выполнение цикла с помощью оператора break:

Учтите, что в цикле в стиле foreach итерационная переменная доступна только для чтения, так как она связана только с исходным массивом. Даже если вы измените её значение, то это не повлияет на работу с массивом.

Также можно использовать данный способ для многомерных массивов.

Поскольку каждый оператор for в стиле foreach перебирает элементы массива последовательно, начиная с первого и заканчивая последним, то данный способ удобен для многих операций. Например, для поиска значения в неупорядоченном массиве. Поиск прекращается после обнаружения нужного значения.

Так как у нас неупорядоченный список, то нам нужно последовательно пройтись по всем элементам. Если нам повезёт и нужное значение встретится при переборе, то выходим из цикла и идём спать .

Вложенные циклы

Также допустимо использование вложенных циклов, когда один цикл выполняется внутри другого:

В результате получим:

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

Результат смотрите в вкладке LogCat.

Цикл for является более удобным вариантом цикла while.

Этот же вариант с while:

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

Треугольник Флойда

Составьте "Треугольник Флойда", который выглядит как набор чисел, которые увеличиваются на единицу. Например, треугольник с высотой шесть строк выглядит следующим образом.

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

Цикл while Java: описание и примеры

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

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

Читайте также:  Firebird как создать базу данных

Для наглядности давайте разберем пример, представленный на рисунке ниже:

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

Если бы значение переменной count изначально равнялось 11, то условие цикла было бы ложным, и программа даже не зашла бы в его тело.

Стоит отметить, что синтаксис Java позволяет использовать оператор while без тела. Приведем пример. Допустим, у нас есть две переменные i = 100 и j = 200, перед нами стоит задача программно вычислить их среднее арифметическое – для этого можно использовать «пустотелый» while:

Повторяющееся исполнение набора инструкций называется циклом. Циклы в Java делятся на три типа:

  1. While ;
  2. For ;
  3. Do While
  • Выше перечислено три разных типа циклов, которые используются с одинаковой целью, и отличаются только синтаксисом;
  • Из-за синтаксических различий может отличаться и их образ действия. Вскоре мы рассмотрим эти различия.

Java-цикл For и его различные типы

For – самый популярный цикл из трёх доступных. Всё, что можно делать при помощи цикла while Java , легко делается и с помощью цикла for .

Существует два типа цикла for :

  1. Обычный цикл for ;
  2. Вложенный for .

Обычный цикл for

  • Когда элемент управления натыкается на цикл for , он сначала выполняет инициализацию. Эта часть выполняется один раз;
  • Затем контроллер переходит к разделу с условиями. Если оценка условий выдает результат true , то контроллер переходит к телу цикла.

Если оценка даёт результат false , то элемент управления выходит из for и выполняет условие, следующее после цикла.

Когда условие даёт значение true , выполняется тело цикла. Затем контроллер переходит к разделу incr/decr . Здесь указываются переменные инкремента или декремента.

После выполнения раздела incr/decr , контроллер переходит к разделу условий. Если результат будет true , то выполняется тело цикла. Затем переход к разделу incr/decr , а потом к разделу условий. Этот процесс будет повторяться до тех пор, пока оценка условий будет равно true .

как написать цикл на Java :

В приведённом выше примере переменная инициализируется значением 1 .

Это действие происходит всего один раз. После чего контроллер переходит к условию a :

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

int x=len; — не валидна, так как len уже освободилась;
int len=p; — валидна, так как рассматривается в качестве новой переменной.

В приведенной выше программе возникает ошибка, так как переменная i освобождается после выхода из цикла Java .

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

  1. В теле цикла в Java может быть любое количество инструкций;
  2. Все они должны быть заключены в фигурные скобки;
  3. Если в теле цикла есть только одна инструкция, то фигурные скобки необязательны.

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

По окончании инициализации этот раздел завершается точкой с запятой. В следующем примере вложенного цикла Java мы поместили в раздел инициализации три инструкции, разделенные запятыми: (a=10) , (b=20) и (c=30) .

  • Подобно разделу с инициализацией, в разделе incr/decr также может быть несколько инструкций, указанных через запятую.
Читайте также:  Как добавить фото в сохры в вк

Но в разделе условий цикла в Java ничего не отделяется запятыми. Все предполагаемые условия должны комбинироваться при помощи операторов AND или OR и образовывать единое условие.

Вложенные циклы

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

В данном примере контроллер доходит до раздела инициализации за пределами цикла.

Объяснение приведённого выше примера :

Значением a = 11 . Затем контроллер переходит к разделу условий. Если условие выдаёт значение true , контроллер переходит к телу цикла и выполняет statementA .

Затем контроллер переходит к разделу инициализации внутреннего цикла, а после этого – к разделу условий.

Если условия выполняется, программа переходит к телу цикла и выполняет statementB . После этого контроллер переходит к разделу с увеличением значения во внутреннем цикле for , а после – к разделу условий внутреннего цикла. Вложенный цикл Java повторяется до тех пор, пока внутреннее условие выдаёт значение true .

Внутрь другого цикла в Java for можно поместить любую конструкцию. Здесь нет ограничения по количеству конструкций.

Чтобы выйти из цикла for в середине тела, можно использовать оператор break . Он выведет контроллер из цикла, независимо от условий в объявлении цикла.

Если мы хотим перейти к следующей итерации цикла с середины тела ( пропустив оставшиеся инструкции текущей итерации ), можно использовать оператор continue .

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

Иногда инициализация происходит в тот момент, когда контроллер доходит до цикла for . В таком случае в разделе инициализации можно написать пустую инструкцию ( пусть это будет просто точка с запятой) . Аналогичным образом можно пропустить раздел увеличения. Если использовать пустое условие ( просто a ), то результат будет расцениваться как true . То есть, все последующие применения будут валидными.

Если мы запишем цикл for как for(;;) , и в нём не будет break или return , то это бесконечный цикл Java . Приведенные ниже циклы являются бесконечными.

Пример 1: for( ; ; )
Пример 2: for(init; true; incr)

Цикл for в стиле foreach

Этот тип циклов используется для перехода по набору элементов в строгом порядке ( от начала к концу ). Набором элементов может быть массив, ArrayList , LinkedList или любая другая коллекция.

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

В этом примере цикл повторяется четыре раза ( количество элементов в массиве ), и каждый раз выводится очередной элемент i ( от 0 до 3 ).

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

В данном случае переменная x получает каждое значение из массива ( по одному значению на итерацию ), а затем выводится. Этот подход ( foreach ) подходит для обслуживания всех элементов в списке. Если нам нужны отдельные фрагменты списка, то можно использовать обычный цикл в Java .

Мы можем выйти из этого цикла при помощи инструкции break . Чтобы пройтись по двухмерному массиву, можно использовать следующий код:

В приведённом выше примере внешний цикл в Java проходит по массиву ссылок ( где каждая ссылка обращается к массиву ), а внутренний цикл проходит по каждому элементу текущего массива.

Данная публикация представляет собой перевод статьи « What Are Java Loops – Definition & Explanation » , подготовленной дружной командой проекта Интернет-технологии.ру

Комментировать
0 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector