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

Страница 44 из 502

<b><i>  оператор</i>; </b>

<b>else </b><b>if (<i>условие) </i></b>

<b><i>  оператор;</i></b>

<b><i>.</i></b>

<b><i>.</i></b>

<b><i>.</i></b>

<b>else</b>

<b><i>  оператор</i>;</b>

Условные выражения в такой конструкции вычисляются сверху вниз. Как только обнаружится истинное условие, выполняется связанный с ним оператор, а все остальные операторы в многоступенчатой конструкции опускаются.

Если ни одно из условий не является истинным, то выполняется последний оператор else, который зачастую служит в качестве условия, устанавливаемого по умолчанию. Когда же последний оператор else отсутствует, а все остальные проверки по условию дают ложный результат, то никаких действий вообще не выполняется.

В приведенном ниже примере программы демонстрируется применение многоступенчатой конструкции if-else-if. В этой программе обнаруживается наименьший множитель заданного целого значения, состоящий из одной цифры.

<b>// Определить наименьший множитель заданного</b>

<b>// целого значения, состоящий из одной цифры.</b>

<b>using System;</b>

<b>class Ladder {</b>

<b>  static void Main() { </b>

<b>    int num;</b>

<b>    for(num = 2; num &lt; 12; num++) { </b>

<b>      if((num % <i>2) ==</i> 0)</b>

<b>        Console.WriteLine(&quot;Наименьший множитель числа &quot; + num + &quot; равен 2.&quot;);</b>

<b>      else if((num % 3) == 0)</b>

<b>        Console.WriteLine(&quot;Наименьший множитель числа &quot; + num + &quot; равен 3.&quot;);</b>

<b>      else if((num % 5) == 0)</b>

<b>        Console.WriteLine(&quot;Наименьший множитель числа &quot; + num + &quot; равен 5.&quot;);</b>

<b>      else if((num % 7) == 0)</b>

<b>        Console.WriteLine(&quot;Наименьший множитель числа &quot; + num + &quot; равен 7.&quot;);</b>

<b>      else</b>

<b>        Console.WriteLine(num + &quot; не делится на 2, 3, 5 или 7.&quot;);</b>

<b>    }</b>

<b>  }</b>

<b>}</b>

<b>Вот к какому результату приводит выполнение этой программы.</b>

<b>Наименьший множитель числа 2 равен 2. </b>

<b>Наименьший множитель числа 3 равен 3.</b>

<div class="fb2-code"><code>&lt;b&gt;Наименьший множитель числа 4 равен 2. &lt;/b&gt;</code></div>

<div class="fb2-code"><code>&lt;b&gt;Наименьший множитель числа 5 равен 5.&lt;/b&gt;</code></div>

<div class="fb2-code"><code>&lt;b&gt;Наименьший множитель числа 6 равен 2. &lt;/b&gt;</code></div>

<div class="fb2-code"><code>&lt;b&gt;Наименьший множитель числа 7 равен 7.&lt;/b&gt;</code></div>

<div class="fb2-code"><code>&lt;div class=&quot;fb2-code&quot;&gt;&lt;code&gt;&amp;lt;b&amp;gt;Наименьший множитель числа 8 равен 2. &amp;lt;/b&amp;gt;&lt;/code&gt;&lt;/div&gt;</code></div>

<div class="fb2-code"><code>&lt;div class=&quot;fb2-code&quot;&gt;&lt;code&gt;&amp;lt;b&amp;gt;Наименьший множитель числа 9 равен 3.&amp;lt;/b&amp;gt;&lt;/code&gt;&lt;/div&gt;</code></div>

<div class="fb2-code"><code>&lt;b&gt;Наименьший множитель числа 10 равен 2.&lt;/b&gt;</code></div>

<b>11 не делится на 2, 3, 5 или 7.</b>

Как видите, последний оператор else выполняется лишь в том случае, если не удается выполнить ни один из предыдущих операторов.

Оператор switch

Вторым оператором выбора в C# является оператор switch, который обеспечивает многонаправленное ветвление программы. Следовательно, этот оператор позволяет сделать выбор среди нескольких альтернативных вариантов дальнейшего выполнения программы. Несмотря на то что многонаправленная проверка может быть организована с помощью последовательного ряда вложенных операторов if, во многих случаях более эффективным оказывается применение оператора switch. Этот оператор действует следующим образом. Значение выражения последовательно сравнивается с константами выбора из заданного списка. Как только будет обнаружено совпадение с одним из условий выбора, выполняется последовательность операторов, связанных с этим условием. Ниже приведена общая форма оператора switch.

<b>switch<i>(выражение) {</i> </b>

<b>case <i>константа1:</i></b>

<b><i>  последовательность операторов</i> </b>

<b>  break; </b>

<b>case <i>константа2:</i></b>

<b><i>  последовательность операторов</i> </b>

<b>  break; </b>

<b>case константаЗ:</b>