Вложенные циклы
Разрешено и широко используется вложение
рассмотренных выше циклов друг в друга. В этом случае границы циклов не должны
пересекаться.
В инициализации внутреннего цикла for может
быть определена переменная с таким же именем, что и переменная, определенная во
внешнем цикле. Это определение остается действительным до конца внешнего цикла.
Но, чтобы не было путаницы, лучше этого не делать. Тогда параметры вешнего
цикла можно использовать в качестве переменных во внутреннем цикле, но менять
их там нельзя.
Пример: программа нахождения простых чисел,
bool def = false;
for(int i=2;
i<50; i++)
{
for(int j=2;
j<i; j++)
{
if(i%j) continue;
else
{dev=true; break;}
}
if(!dev)
cout<<i<<”\n”;
dev=false;
}
Программа организована в виде двух
вложенных циклов таким образом, что осуществляется перебор и проверка остатка
от деления пары чисел, первое из которых изменяется от 2 до 50 во внешнем
цикле, а второе – от 2 до значения первого числа во внутреннем. Если остаток от
деления не равен нулю, осуществляется продолжение внутреннего цикла по оператору
continue. Если остаток
от деления равен нулю, выполняется выход из внутреннего цикла по оператору break с установкой признака
деления в логической переменной def.
После выхода из внутреннего цикла производится анализ переменной def и вывод простого числа.
|