Добавить в цитаты Настройки чтения

Страница 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 &lt; j; i++, j--)</b>

<b>      Console.WriteLine(&quot;i и j: &quot; + i + &quot; &quot; + 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 &lt;= num/2) &amp; (j &gt;= 2); i++, j--) {</b>

<b>      if((smallest == 1) &amp; ((num % i) == 0)) </b><b>smallest = i;</b>

<b>      if ((largest == 1) &amp; ((num % j) == 0)) largest = j;</b>

<b>    }</b>