Android java for statement

Android java for statement

What Is For Loop:

In JAVA For statement is the most commonly used lopping statement which iterate over a range of numbers. It is different from if then else in a way that it forces the program to go back up again repeatedly until termination expression evaluate to false. For loop is another way to control flow of program.

For Loop Syntax:

The most basic syntax of For loop is:

for (initialization-expression; termination-expression;increment-or-decrement-expression)

initialization-expression – The initialization expression is executed once before the loop begins. It initializes the loop.

termination-expression – This is executed each time to check whether looping should terminate or continue. The looping continues to execute the code until it evaluates to true and terminate when evaluate to false.

increment-or-decrement-expression – It is executed after each iteration which increment or decrement the value of initialized variable.

statements-or-code-to-be-executed-here – Here we put the code or statement which we want to be iterated until for looping termination expression evaluate to false.

Example of For Loop:

Lets create a program to find the sum of 1 to 100 number using for Loop:

public class ForExample < public static void main(String[] args) < int i; int total = 0; for(i=1;i<=100;i++)< total = total + i; >System.out.println("Sum of Value from 1 to 100 number is: " + total); > >
Sum of Value from 1 to 100 number is: 5050

Importance of For Loop:

As we know in JAVA, code is executed from top to bottom executing every line of code unless we use control flow statement. In our previous section, we already learned one way is to use if then else which tells the compiler to skip executing code if if condition is evaluated to false.

Another way to tell JAVA not to execute the code is using Loopings. It is different from if then else in a way that it forces the program to go back up again repeatedly until termination expression evaluate to false.

For example we need to create a program to find factorial of 10. You can do something like:

You can do it easily in this case but what if we need to find factorial of 1000 or What if we need to add 1 to 1000 number or even more. Here we need for loop to iterate a particular code for a range of values.

Источник

The for Statement

The for statement provides a compact way to iterate over a range of values. Programmers often refer to it as the «for loop» because of the way in which it repeatedly loops until a particular condition is satisfied. The general form of the for statement can be expressed as follows:

for (initialization; termination; increment) < statement(s) >

When using this version of the for statement, keep in mind that:

  • The initialization expression initializes the loop; it’s executed once, as the loop begins.
  • When the termination expression evaluates to false , the loop terminates.
  • The increment expression is invoked after each iteration through the loop; it is perfectly acceptable for this expression to increment or decrement a value.

The following program, ForDemo , uses the general form of the for statement to print the numbers 1 through 10 to standard output:

The output of this program is:

Count is: 1 Count is: 2 Count is: 3 Count is: 4 Count is: 5 Count is: 6 Count is: 7 Count is: 8 Count is: 9 Count is: 10

Notice how the code declares a variable within the initialization expression. The scope of this variable extends from its declaration to the end of the block governed by the for statement, so it can be used in the termination and increment expressions as well. If the variable that controls a for statement is not needed outside of the loop, it’s best to declare the variable in the initialization expression. The names i , j , and k are often used to control for loops; declaring them within the initialization expression limits their life span and reduces errors.

The three expressions of the for loop are optional; an infinite loop can be created as follows:

The for statement also has another form designed for iteration through Collections and arrays This form is sometimes referred to as the enhanced for statement, and can be used to make your loops more compact and easy to read. To demonstrate, consider the following array, which holds the numbers 1 through 10:

The following program, EnhancedForDemo , uses the enhanced for to loop through the array:

class EnhancedForDemo < public static void main(String[] args)< int[] numbers = ; for (int item : numbers) < System.out.println("Count is: " + item); >> >

In this example, the variable item holds the current value from the numbers array. The output from this program is the same as before:

Count is: 1 Count is: 2 Count is: 3 Count is: 4 Count is: 5 Count is: 6 Count is: 7 Count is: 8 Count is: 9 Count is: 10

We recommend using this form of the for statement instead of the general form whenever possible.

Источник

Цикл for

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

for

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

 for(инициализация; логическое выражение (условие); шаг (итерация)) команда 

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

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

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

For

Третье выражение в цикле — шаг, то есть, на какое значение нужно изменить переменную. Строго говоря, в таком виде (x = x + 1) современные программисты не пишут, так как есть укороченная форма записи (x++). Предыдущий пример можно переписать по другому:

Эта запись является классической и правильной, если нам нужно посчитать от 0 до 8. Может возникнуть соблазн написать, например, так:

Результат будет таким же, но такой код нежелателен. Старайтесь писать традиционно. Особенно это проявляется при работе с массивами.

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

 for (int life = 9; life >= 0; life--) mInfoTextView.append("\nУ кошки осталось жизней: " + life); 

For

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

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

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

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

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

 int i; // эта переменная нам понадобится не только в цикле for(i = 0; i < 10; i++)< // что-то делаем >// можем использовать переменную где-то ещё x = i + 10; 

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

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

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

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

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

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

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

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

 int i; boolean kind = false; i = 0; for( ; !kind; )

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

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

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

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

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

 int[] mice = < 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 >; for (int i = 0; i < mice.length; i++) mInfoTextView.append(" " + mice[i]); 

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

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

 int[] mice = < 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 >; for (int i = mice.length - 1; i >= 0; i--)

Аналог foreach

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

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

for(тип итер_пер : коллекция) блок_операторов

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

 int[] nums = < 1, 2, 3, 4, 5 >; int sum = 0; for(int i = 0; i < 5; i++) sum += nums[i]; 

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

 int[] nums = < 1, 2, 3, 4, 5 >; int sum = 0; for(int i : nums) sum += i; 

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

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

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

 int[] nums = < 1, 2, 3, 4, 5 >; int sum = 0; for(int i : nums) < sum += i; if(i == 3) break; // останавливаем цикл, если значение равно 3 >

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

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

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

 int[] nums = < 3, 1, 6, 4, 9, 5, 8, 2 >; int val = 5; boolean found = false; // ищем значение 5 в массиве for (int x : nums) < if (x == val) < found = true; break; >> if (found)

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

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

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

 int i, j; for (i = 0; i < 10; i++) < for (j = i; j < 10; j++) < mInfoTextView.append("*"); >mInfoTextView.append("\n"); > 

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

 int i, j, a = 0; for (i = 1; i < 10; i++) < for (j = 1; j < 10; j++) < a = i * j; System.out.print(a + " | "); >System.out.println(); > 

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

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

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

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

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

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

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 

Источник

Читайте также:  Функция минимум двух чисел java
Оцените статью