Страница 48 из 502
<b> }</b>
<b> }</b>
<b>}</b>
Ниже приведен результат выполнения этой программы.
<b>2 — простое число</b>
<b>3 — простое число</b>
<b>Наибольший множитель числа 4 равен 2</b>
<b>5 — простое число </b>
<b>Наибольший множитель числа 6 равен 3</b>
<b>7 — простое число </b>
<b>Наибольший множитель числа 8 равен 4</b>
<b>Наибольший множитель числа 9 равен 3</b>
<b>Наибольший множитель числа 10 равен 5</b>
<b>11 — простое число </b>
<b>Наибольший множитель числа 12 равен 6</b>
<b>13 — простое число </b>
<b>Наибольший множитель числа 14 равен 7</b>
<b>Наибольший множитель числа 15 равен 5</b>
<b>Наибольший множитель числа 16 равен 8</b>
<b>17 — простое число </b>
<b>Наибольший множитель числа 18 равен 9</b>
<b>19 — простое число</b>
Оператор цикла for относится к самым универсальным операторам языка С#, поскольку он допускает самые разные варианты своего применения. Некоторые разновидности оператора цикла for рассматриваются ниже.
В операторе цикла for разрешается использовать две или более переменных для управления циклом. В этом случае операторы инициализации и инкремента каждой переменной разделяются запятой. Рассмотрим следующий пример программы.
<b>// Использовать запятые в операторе цикла for.</b>
<b>using System;</b>
<b>class Comma {</b>
<b> static void Main() { </b>
<b> int i, j;</b>
<b> for(i=0, j = 10; i < j; i++, j--)</b>
<b> Console.WriteLine("i и j: " + i + " " + j) ;</b>
<b> }</b>
<b>}</b>
Выполнение этой программы дает следующий результат.
<b>i </b><b>и </b><b>j : </b><b>0 </b><b>10</b>
<b>i </b><b>и </b><b>j : </b><b>1 </b><b>9</b>
<b>i </b><b>и </b><b>j : </b><b>2 </b><b>8</b>
<b>i </b><b>и </b><b>j : </b><b>3 </b><b>7</b>
<b>i </b><b>и </b><b>j : </b><b>4 </b><b>6</b>
В данном примере запятыми разделяются два оператора инициализации и еще два итерационных выражения. Когда цикл начинается, инициализируются обе переменные, i и j. Всякий раз, когда цикл повторяется, переменная i инкрементируется, а переменная j декрементируется. Применение нескольких переменных управления циклом нередко оказывается удобным, упрощая некоторые алгоритмы. Теоретически в операторе цикла for может присутствовать любое количество операторов инициализации и итерации, но на практике цикл получается слишком громоздким, если применяется более двух подобных операторов.
Ниже приведен практический пример применения нескольких переменных управления циклом в операторе for. В этом примере программы используются две переменные управления одним циклом for для выявления наибольшего и наименьшего множителя целого числа (в данном случае — 100). Обратите особое внимание на условие окончания цикла. Оно опирается на обе переменные управления циклом.
<b>// Использовать запятые в операторе цикла for для</b>
<b>// выявления наименьшего и наибольшего множителя числа.</b>
<b>using System;</b>
<b>class Comma {</b>
<b> static void Main() { </b>
<b> int i, j;</b>
<b> int smallest, largest; </b>
<b> int num;</b>
<b> num = 100;</b>
<b> smallest = largest = 1;</b>
<b> for(i=2, j=num/2; (i <= num/2) & (j >= 2); i++, j--) {</b>
<b> if((smallest == 1) & ((num % i) == 0)) </b><b>smallest = i;</b>
<b> if ((largest == 1) & ((num % j) == 0)) largest = j;</b>
<b> }</b>