Блог
Меню сайта

Форма входа

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Календарь
«  Декабрь 2013  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031

Приветствую Вас, Гость · RSS 24.09.2017, 22:16

Главная » 2013 » Декабрь » 11 » Циклы в Java
14:38
Циклы в Java
В языке программирования Java цикл for-each используется для циклической обработки объектов коллекции, такой как массив, в строгой последовательности, от начала к концу. Благодаря удобному способу обработки, предложенному циклом for-each, этот вид цикла быстро превратился в средство, необходимое программистам. Так же язык программирования Java включает функциональные возможности цикла for-each, усовершенствуя оператор цикла for. Преимущество такого подхода заключается в том, что не требуется нового ключевого слова и не нарушается работоспособность разработанного ранее кода. Цикл for в стиле for-each (т. е. наделенный функциональными возможностями цикла for-each) иногда называют улучшенным циклом for (enhanced for loop).

Описание цикла for-each
Общая форма записи цикла for в стиле for-each приведена в следующей строке:

foritype itr-var : iterableObj) statement-block

Выше приведенном примере type— тип, a itr-var— имя переменной цикла (iteration variable), которая будет получать элементы, содержащиеся в iterabieObj, последовательно один за другим от начала к концу. Объект, на который ссылается переменная iterabieObj, должен быть массивом или объектом, реализующим новый интерфейс Iterable. В любом случае тип type должен совпадать (или быть совместимым) с типом элементов, извлекаемых из объекта iterableObj. Таким образом, в случае циклической обработки массива type должен быть совместим с базовым типом массива. В каждом проходе тела цикла извлекается очередной элемент объекта iterabieObj и запоминается в переменной itr-var. Цикл выполняется до тех пор, пока не будут извлечены все элементы.

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


int nums[]  = {1,  2,  3,  4,  5,  6, 7,  8,  9,  10 };
int sum = 0; for (int i=0, i < 10; i++)  sum +=nums{};


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

int nums[] = {1,  2,  3,  4,  5,  б, 7,  8,  9,  10 }; int sum = 0; for(int x: nums) sum += x;

B каждом проходе тела цикла переменная х получает значение из следующего элемента массива nums. Таким образом, во время первого прохода переменная цикла х содержит значение 1, во время второго — значение 2 и т. д. При этом не только упрощается синтаксис, но и устраняются ошибки выхода за границы диапазона (boundary errors).


Например.

class ForEach {    
public static void main(String args[]) {      
int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };      
int sum = 0;          
for(int x : nums) {        
System.out.println("Value is: " + x);       
sum += x;      }       
System.out.println("Summation: " + sum);   
 }  
}


Результатом выше приведенного примера будет:

Value is: 1
Value is: 2
Value is: 3
Value is: 4
Value is: 5
Value is: 6
Value is: 7
Value is: 8
Value is: 9
Value is: 10
Summation: 55

  Как показывает вывод программы, цикл for в стиле for-each автоматически обрабатывает массив в цикле от наименьшего значения индекса до наибольшего его значения. Несмотря на то, что цикл for в стиле for-each повторяется до тех пор, пока не обработаны все элементы массива, можно прервать его с помощью оператора break.
Просмотров: 955 | Добавил: livebook | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Copyright exshark © 2017
Сделать бесплатный сайт с uCoz