2014-11-08 2 views
0

У меня вопрос о циклах в java. Я понимаю, как для петель работать, используя формат:Для запроса цикла java

for(initialize variable : condition : counter){} 

Моя проблема заключается в одном из своих лекций он говорит:

for(String s : str){.....} 

Каким образом это не нуждается счетчик? Что такое str?

+3

Это усовершенствованный цикл, или «для каждый "цикл: https://blogs.oracle.com/CoreJavaTechTips/entry/using_enhanced_for_loops_with str должен быть набором строк в вашем примере – vefthym

ответ

2

Это расширенный цикл цикла или цикл «для каждого». Он выполняет итерацию по всем элементам str, что, вероятно, представляет собой набор строк в вашем примере или массив строк.

Прочтите this для получения более подробной информации.

Например, вместо того, чтобы писать это:

for (int i = 0; i < myArray.length; i++) { 
    System.out.println(myArray[i]); 
} 

вы можете написать его эквивалент:

for (int myValue : myArray) { 
    System.out.println(myValue); 
} 
+0

Благодарим за быстрый ответ: D – Crazypigs

1

Это расширенный цикл, который выполняет итерации через каждый элемент коллекции. Он не останавливается, пока он не попал в последний элемент или не встретил break;.

+0

Finger поскользнулся? 2nd for -> or –

+0

@JonathanRosenne спасибо. – drhunn

1

Прежде всего заменить : с ; в первый цикл, как это (вы использовали неправильный синтаксис)

for(initialize variable ; condition ; counter){} 

и второй один улучшенный цикл,

for(String s : str){.....} 

очень удобно в случае коллекций, он не требует никакого счетчика, поскольку он работает, пока не достигнет последнего элемента в коллекции, представленную ему (в этом случае str является то, что коллекция)

Смотрите это, чтобы узнать больше об этом What is the syntax of enhanced for loop in Java?

+0

, также называемый циклом foreach, нуждается в классе Iterable, чтобы использовать его –

0

Ваш окончательный источник для такого рода вопросов является язык Java Спецификация. В данном конкретном случае:

http://docs.oracle.com/javase/specs/jls/se8/html/jls-14.html#jls-14.14

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

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

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