Ваш цикл эквивалентно:
for(int i=0;i<numbers.length;i++){
int x = numbers[i];
total+=x;
}
Каждый элемент извлекается в порядке, и код внутри цикла выполняется для каждого элемента.
Первая операция, int i=0;
выполняется при вводе цикла for и только один раз.
Вторая операция, i<numbers.length
- это условие, которое должно быть истинным для продолжения цикла for. Это может быть любое логическое выражение. Я не советую делать ваше булевое выражение чрезмерно сложным, но помните его возможное. Пример:
boolean continueSumming = true;
for(int i=0;i<numbers.length && continueSumming;i++){
if(i>9)
continueSumming=false;
}
Этот цикл будет повторять только в течение максимум 10 элементов, например, в качестве переменной continueSumming
будет установлено значение ложно на 9-м элементе (помните массивы 0 индексируется.)
последняя операция, i++
также выполняется каждая итерация. Здесь он увеличивает i
.
i
можно было бы назвать контрольной переменной здесь, поскольку она управляет, когда заканчивается выполнение циклов. Больше бонусов для вас.
Цикл while более простой, он повторяется до тех пор, пока какое-то условие перестанет быть истинным. Этот цикл while эквивалентен циклу for.
int index = 0;
while(index < numbers.length) {
total += numbers[index];
index += 1;
}
Каждый элемент будет добавлен к итогу, и цикл завершится, когда индекс будет больше или равен длине массива. Поскольку каждая итерация цикла while увеличивает индекс на 1, он будет выполняться для каждого элемента.
В то время как петли не обычно используется для перебора массивов в качестве синтаксиса for
петли менее многословный, и позволяет переменные сторожевой i
выпадает из сферы, в то время как для синтаксиса цикла не делает.
Каков ваш вопрос? –
Это в основном для каждого цикла для каждого элемента в числах – aaronman
Что вы хотите точно понимать? И что из-за этого связано с циклом while? – roippi