Число в обратном порядке: 891



 

Приведенный выше цикл действует следующим образом. На каждом его шаге крайняя слева цифра получается в результате расчета остатка от деления целого числа (значения переменной num) на 10. Полученная в итоге цифра отображается. Далее значение переменной num делится на 10. А поскольку это целочисленное деление, то в его результате крайняя слева цифра отбрасывается. Этот процесс повторяется до тех пор, пока значение переменной num не достигнет нуля.

 

 

Оператор цикла foreach

 

Оператор цикла foreach служит для циклического обращения к элементам коллекции , которая представляет собой группу объектов. В C# определено несколько видов коллекций, к числу которых относится массив. Подробнее о цикле foreach речь пойдет в главе 7, где рассматриваются массивы.

 

 

Применение оператора break для выхода из цикла

 

С помощью оператора break можно специально организовать немедленный выход из цикла в обход любого кода, оставшегося в теле цикла, а также минуя проверку условия цикла. Когда в теле цикла встречается оператор break, цикл завершается, а выполнение программы возобновляется с оператора, следующего после этого цикла. Рассмотрим простой пример программы.

 

// Применить оператор break для выхода из цикла.

using System;

class BreakDemo {

static void Main() {

// Использовать оператор break для выхода из этого цикла,  

for(int i= -10; i <= 10; i++) {

if(i > 0) break; // завершить цикл, как только значение  

// переменной i станет положительным  

Console.Write(i + " ");

}

Console.WriteLine("Готово ! ") ;

}

}

 

Выполнение этой программы дает следующий результат.

 

-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 Готово!

 

Как видите, цикл for организован для выполнения в пределах от -10 до 10, но, несмотря на это, оператор break прерывает его раньше, когда значение переменной i становится положительным.

Оператор break можно применять в любом цикле, предусмотренном в С#. В качестве примера ниже приведена версия предыдущей программы, переделанная с целью использовать цикл do-while.

 

// Применить оператор break для выхода из цикла do-while.

using System;

 

class BreakDemo2 {  

static void Main() {  

int i;

 

i = -10;

do {

if (i > 0) break;

Console.Write(i + " ") ;  

i++ ;

} while (i <= 10);

Console.WriteLine("Готово!");

}

}

 

А теперь рассмотрим более практический пример применения оператора break. В приведенной ниже программе выявляется наименьший множитель числа.

 

// Выявить наименьший множитель числа.

using System;

class FindSmallestFactor {  

static void Main() {  

int factor = 1;  

int num = 1000;

for (int i=2; i <= num/i; i++) {

if((num%i) == 0) {

factor = i;

Break; // прервать цикл, как только будет

Выявлен наименьший множитель числа

}

}

Console.WriteLine("Наименьший множитель равен " + factor);

}

}

 

Результат выполнения этой программы выглядит следующим образом.

 

Наименьший множитель равен 2

 

Оператор break прерывает выполнение цикла for, как только будет выявлен наименьший множитель числа. Благодаря такому применению оператора break исключается опробование любых других значений после выявления наименьшего множителя числа, а следовательно, и неэффективное выполнение кода.

Если оператор break применяется в целом ряде вложенных циклов, то он прерывает выполнение только самого внутреннего цикла. В качестве примера рассмотрим следующую программу.

 

// Применить оператор break во вложенных циклах,  

using System;

class BreakNested {  

static void Main() {

for(int i=0; i<3; i++) {

Console.WriteLine("Подсчет во внешнем цикле: " + i);

Console.Write(" Подсчет во внутреннем цикле: ");

int t = 0;  

while(t < 100) {

if(t == 10) break; // прервать цикл, если t равно 10  

Console.Write(t + " "); t++;

}

Console.WriteLine();

}

Console.WriteLine("Циклы завершены.");

}

}

 

Выполнение этой программы дает следующий результат.

 

Подсчет во внешнем цикле: 0

Подсчет во внутреннем цикле: 0 1 2 3 4 5 6 7 8 9  

Подсчет во внешнем цикле: 1

Подсчет во внутреннем цикле: 0 1 2 3 4 5 б 7 8 9  

Подсчет во внешнем цикле: 2

Подсчет во внутреннем цикле: 0 1 2 3 4 5 6 7 8 9  

Циклы завершены

 

Как видите, оператор break из внутреннего цикла вызывает прерывание только этого цикла, а на выполнение внешнего цикла он не оказывает никакого влияния.

В отношении оператора break необходимо также иметь в виду следующее. Во-первых, в теле цикле может присутствовать несколько операторов break, но применять их следует очень аккуратно, поскольку чрезмерное количество операторов break обычно приводит к нарушению нормальной структуры кода. И во-вторых, оператор break, выполняющий выход из оператора switch, оказывает воздействие только на этот оператор, но не на объемлющие его циклы.

 

 


Дата добавления: 2019-02-12; просмотров: 367; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!