В данном примере запятыми разделяются два оператора инициализации и еще два итерационных выражения. Когда цикл начинается, инициализируются обе переменные, i и j. Всякий раз, когда цикл повторяется, переменная i инкрементируется, а переменная j декрементируется. Применение нескольких переменных управления циклом нередко оказывается удобным, упрощая некоторые алгоритмы. Теоретически в операторе циклаforможет присутствовать любое количество операторов инициализации и итерации, но на практике цикл получается слишком громоздким, если применяется более двух подобных операторов.
Ниже приведен практический пример применения нескольких переменных управления циклом в оператореfor.В этом примере программы используются две переменные управления одним цикломforдля выявления наибольшего и наименьшего множителя целого числа (в данном случае — 100). Обратите особое внимание на условие окончания цикла. Оно опирается на обе переменные управления циклом.
// Использовать запятые в операторе цикла for для // выявления наименьшего и наибольшего множителя числа.
using System; >
class Comma {
static void Main { int i, j;
int smallest, largest; int num;
num = 100;
smallest = largest = 1;
for(i=2, j=num/2; (i <= num/2) & (j >= 2); i++, j—) {
if((smallest == 1) & ((num % i) == 0)) smallest = i;
if ( (largest == 1) & ((num % j) == 0)) largest = j;
}
Console.WriteLine("Наибольший множитель: " + largest);
Console.WriteLine("Наименьший множитель: " + smallest);
}
}
Ниже приведен результат выполнения этой программы.
Наибольший множитель: 50 Наименьший множитель: 2
Благодаря применению двух переменных управления циклом удается выявить наименьший и наибольший множители числа в одном циклеfor.В частности, управляющая переменнаяiслужит для выявления наименьшего множителя. Первоначально ее значение устанавливается равным 2 и затем инкрементируется до тех пор, пока не превысит половину значения переменнойnum. Ауправляющая переменнаяjслужит для выявления наибольшего множителя. Ее значение первоначально устанавливается равным половине значения переменнойnumи затем декрементируется до тех пор, пока не станет меньше 2. Цикл продолжает выполняться до тех пор, пока обе переменные,iиj,не достигнут своих конечных значений. По завершении цикла оба множителя оказываются выявленными.
Условное выражение