В предыдущем занятии Вы научились искать максимальное значение в массиве. Для этого достаточно объявить переменную, что будет хранить значение индекса текущего элемента и на каждом витке цикла увеличивать ее на один. Проверяя при этом, не вышло ли значение индекса за границы массива. В С++ помимо цикла while также имеется цикл for, что более подходит для операций над массивами. Сразу скажу, что любой цикл while можно написать через for, равно как и наоборот:
#include <iostream>
int main()
{
float studentsProgress[10] =
{
3.0f, 4.2f, 3.4f, 3.9f, 4.75f,
4.2f, 4.8f, 3.1f, 4.4f, 3.8f
};
float maxProgress = studentsProgress[0];
int i = 0;
for( ; i < 10 ; )
{
if( studentsProgress[i] > maxProgress )
{
maxProgress = studentsProgress[i];
}
i++;
}
std::cout << "Max progress is: ";
std::cout << std::endl;
system("pause");
return 0;
}
Этот код делает то же самое, что и аналогичный ему с циклом while из предыдущего занятия. Не сложно догадаться, что условие в цикле for записано между двумя символами ";". Точки с запятой разделяют цикл for на три части: for(/* выражение, что выполнится один раз */; /* условие */; /* выражение, что выполнится на каждом витке цикла */). Любая из частей цикла for может быть упущена. Две другие части помимо условия чаще всего используют для работы с индексом:
for( int i = 0; i < 10; i++ )
{
if( studentsProgress[i] > maxProgress )
{
maxProgress = studentsProgress[i];
}
}
Поскольку переменная, что хранит индекс(i) нужна нам лишь для этого цикла(дальше она не используется), ее можно объявить и инициализировать в первой части цикла:
for( int i = 0; ...
Далее следует условие:
for( int i = 0; i < 10; ...
И наконец, инкремент переменной "i" мы выносим из тела цикла в специально отведенное для этого место:
for( int i = 0; i < 10; i++ )
Цикл for наглядно демонстрирует, каким именно образом мы перебираем элементы массива(а именно, от первого до последнего). Для того, чтобы пройтись по массиву с заду наперед, мы бы написали:
for( int i = 10 - 1; i >= 0; i-- )
Разберите сами, почему именно так?
#include <iostream>
int main()
{
float studentsProgress[10] =
{
3.0f, 4.2f, 3.4f, 3.9f, 4.75f,
4.2f, 4.8f, 3.1f, 4.4f, 3.8f
};
float maxProgress = studentsProgress[0];
int i = 0;
for( ; i < 10 ; )
{
if( studentsProgress[i] > maxProgress )
{
maxProgress = studentsProgress[i];
}
i++;
}
std::cout << "Max progress is: ";
std::cout << std::endl;
system("pause");
return 0;
}
Этот код делает то же самое, что и аналогичный ему с циклом while из предыдущего занятия. Не сложно догадаться, что условие в цикле for записано между двумя символами ";". Точки с запятой разделяют цикл for на три части: for(/* выражение, что выполнится один раз */; /* условие */; /* выражение, что выполнится на каждом витке цикла */). Любая из частей цикла for может быть упущена. Две другие части помимо условия чаще всего используют для работы с индексом:
for( int i = 0; i < 10; i++ )
{
if( studentsProgress[i] > maxProgress )
{
maxProgress = studentsProgress[i];
}
}
Поскольку переменная, что хранит индекс(i) нужна нам лишь для этого цикла(дальше она не используется), ее можно объявить и инициализировать в первой части цикла:
for( int i = 0; ...
Далее следует условие:
for( int i = 0; i < 10; ...
И наконец, инкремент переменной "i" мы выносим из тела цикла в специально отведенное для этого место:
for( int i = 0; i < 10; i++ )
Цикл for наглядно демонстрирует, каким именно образом мы перебираем элементы массива(а именно, от первого до последнего). Для того, чтобы пройтись по массиву с заду наперед, мы бы написали:
for( int i = 10 - 1; i >= 0; i-- )
Разберите сами, почему именно так?
Комментариев нет:
Отправить комментарий