На этом шаге мы рассмотрим цикл for
Очень часто нужно писать программы, в которых некоторая часть синтаксически выглядит одинаково. Например, вывод значения переменной 10 раз, поиск всех делителей числа и так далее. Для таких целей удобно использовать цикл for.
Синтаксис цикла for прост:
for (int i = 0; i <= 9; i++) { System.out.println("I love Java"); }
В данном фрагменте кода выводится 10 раз на экран надпись: I love Java. Переменная i служит для счетчика количества повторений выполнения цикла. Цикл for состоит из трех частей: местом объявления счетчика, проверки условия, часть, в которой значение счетчика изменяется. Все что находится между фигурными скобками называется телом цикла. В теле цикла может находиться все что угодно, даже еще один цикл. В таком случае такая конструкция называется вложенным циклом.
Существуют, однако, правила согласно которым все три части оператора должны только инициализировать, проверять и обновлять один и тот же счетчик. Если не придерживаться этих правил, полученный код станет неудобным, а то и вообще непригодным для чтения.
Приведем ниже несколько примеров использования цикла for.
Пример 1. Нахождение суммы первых 1000 натуральных чисел.
public class PrimerFirst { public static void main(String[] args) { int sum = 0; /*Будем перебирать все числа из промежутка 1..1000 и добавлять каждое к переменной sum*/ for (int i = 1; i <= 1000; i++) { sum += i; } /*Выведем результат на экран*/ System.out.println(sum); } }
Полный проект можно взять здесь.
Рис. 1. Вывод программы
Пример 2. Вывод на экран всех нечетных чисел, находящихся в промежутке от 1 до 50.
public class PrimerSecond { public static void main(String[] args) { /* Будем перебирать все числа из промежутка 1..50, приэтом увеличивать значени счетчика на 2. */ for (int i = 1; i <= 50; i += 2) { System.out.print(i + " "); /*Выведем очередное число на экран*/ } } }
Полный проект можно взять здесь.
Рис. 2. Вывод программы
Пример 3. Нахождение наибольшего общего делителя двух чисел.
public class PrimerThird { public static void main(String[] args) { int a = 147; int b = 105; int d = 1; /*Предположим, что НОД чисел равен 1*/ /*Будем перебирать все числа от 2 до a*/ for (int i = 2; i <= a; i++) { if (a % i == 0 && b % i == 0) { /*и проверять делится ли и a и b на i*/ d = i; /*если да, то изменим значение предполагаемого НОД*/ } } /*Выведем ответ на экран*/ System.out.println(d); } }
Полный проект можно взять здесь.
Рис. 3. Вывод программы
На следующем шаге мы рассмотрим цикл while