2013-06-10 3 views
-7

Я видел следующий код на веб-сайте, но не знаю, что это делает, когда я его использую, он показывает ошибку.Что делает следующий цикл цикла?

for(String next: var) 
+5

Только эта строка кода? А как насчет остальных. Вы говорите, что «показывает ошибку»: какая ошибка? – fge

+0

@fge посмотреть ответы – user2470749

+1

I _knew_ ответ ...Но ваш вопрос слишком расплывчатый: «когда я использую его, он показывает ошибку», вы даже не говорите, как вы его используете – fge

ответ

3

Его java for each loop. где переменная является ссылкой, которая реализует iterable

An enhanced for loop for the Java™ Programming Language

см: http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html

And see how its translates

+2

Это не обязательно должен быть список. Это может быть любая коллекция или массив. – NeplatnyUdaj

+5

@NeplatnyUdaj это даже не должна быть Коллекция или массив. Единственное требование состоит в том, что ссылка реализует 'Iterable' некоторого типа. То, что он работает на массивах, также является бонусом, поскольку массивы не реализуют его. – fge

+0

Thankyou все. Мое замешательство. –

2

его называют для каждого цикла в Java

для того, чтобы работать, var должно быть типа String[] ИЛИ Collection<String>, который является e ssentially Iterable<String>

его эквивалент

for(int i=0; i < var.length; i++) { 
    String next = var[i]; 
} 

в случае var является String[]

и

for (Iterator<String> itr = var.iterator(); itr.hasNext();) 
{ 
    String next = itr.next(); 

} 

в случае, когда var является Collection<String>

1

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

1

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

для получения дополнительной информации см это for each loop

2

Это как письма:

for (Iterator<String> itr = var.iterator(); itr.hasNext();) 
{ 
    String str = itr.next(); 
    ... 
} 

См this link подробности.

+0

Naah. Вы перепутали имена переменных. – aioobe

+0

@aioobe Спасибо, исправлено :) – Maroun

+1

+1 Для того, чтобы быть первым ответом, чтобы на самом деле объяснить, как это работает. –

0

var должен быть List of String объектов,

for(Object s:List){} является For each loop или усилен для каждого цикла.

Легко итерацию, как это, а не с помощью

List<String> var=new ArrayList<String>(); 

for(int i=0;i<var.length();i++) 

    { 
     String s=var.get(i); //var is a list of String 
     System.out.println(s); 

    } 

Для каждого используется этот путь

for(String s:var) 
{ 
    System.out.println(s); //much easy 
} 

Так ослабевать Java позволяет каждый цикл для перебора списка через для каждый.

+1

... 'var' должен реализовывать' Iterable 'или массив строк. – aioobe

+0

@aioobe ... правильный ... он работает как закрытие в проекте лямбда oracle ... http: //www.javac.info/closures-v05.html – anshulkatta

Смежные вопросы