Герберт Шилдт - C# 4.0: полное руководство
- Название:C# 4.0: полное руководство
- Автор:
- Жанр:
- Издательство:ООО И.Д. Вильямс
- Год:2011
- Город:Москва -- Киев
- ISBN:978-5-8459-1684-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Герберт Шилдт - C# 4.0: полное руководство краткое содержание
В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.
Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию
C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
}
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
, оказывает воздействие только на этот оператор, но не на объемлющие его циклы.
Применение оператора continue
С помощью оператора continue
можно организовать преждевременное завершение шага итерации цикла в обход обычной структуры управления циклом. Оператор continue осуществляет принудительный переход к следующему шагу цикла, пропуская любой код, оставшийся невыполненным. Таким образом, оператор continue
служит своего рода дополнением оператора break
. В приведенном ниже примере программы оператор continue
используется в качестве вспомогательного средства для вывода четных чисел в пределах от 0 до 100.
// Применить оператор continue,
using System;
class ContDemo {
static void Main() {
// вывести четные числа от 0 до 100.
for (int i = 0; i <= 100; i++) {
if((i%2) != 0) continue; // перейти к следующему шагу итерации
Console.WriteLine(i);
}
}
}
В данном примере выводятся только четные числа, поскольку при обнаружении нечетного числа шаг итерации цикла завершается преждевременно в обход вызова метода WriteLine().
В циклах while
и do-while
оператор continue
вызывает передачу управления непосредственно условному выражению, после чего продолжается процесс выполнения цикла. А в цикле for
сначала вычисляется итерационное выражение, затем условное выражение, после чего цикл продолжается.
Оператор continue
редко находит удачное применение, в частности, потому, что в C# предоставляется богатый набор операторов цикла, удовлетворяющих большую часть прикладных потребностей. Но в тех особых случаях, когда требуется преждевременное прерывание шага итерации цикла, оператор continue
предоставляет структурированный способ осуществления такого прерывания.
Оператор return
организует возврат из метода. Его можно также использовать для возврата значения. Более подробно он рассматривается в главе 6.
Оператор goto
Имеющийся в C# оператор goto
представляет собой оператор безусловного перехода. Когда в программе встречается оператор goto
, ее выполнение переходит непосредственно к тому месту, на которое указывает этот оператор. Он уже давно "вышел из употребления" в программировании, поскольку способствует созданию "макаронного" кода. Тем не менее оператор goto
все еще находит применение — иногда даже эффективное. В этой книге не делается никаких далеко идущих выводов относительно правомочности использования оператора goto
для управления программой. Следует, однако, подчеркнуть, что этому оператору трудно найти полезное применение, и поэтому он не особенно нужен для полноты языка программирования. Хотя в некоторых случаях он оказывается удобным и дает определенные преимущества, если используется благоразумно. В силу этих причин оператор goto
упоминается только в данном разделе книги. Главный недостаток оператора goto
с точки зрения программирования заключается в том, что он вносит в программу беспорядок и делает ее практически неудобочитаемой. Но иногда применение оператора goto
может, скорее, прояснить, чем запутать ход выполнения программы.
Интервал:
Закладка: