Что такое цикл в с
Перейти к содержимому

Что такое цикл в с

  • автор:

Циклы в C++ и C

Циклы в C++ и C

Цикл – это конструкция в языке программирования, которая используется для многократного повторения определенного блока кода. Он обрабатывается исходным приложением до тех пор, пока будет выполняться заданное условие.

Циклы в языке программирования СИ бывают нескольких видов. Далее предстоит получше узнать о том, что вообще собой представляет цикл, для чего применяется, как формируется.

Инкременты и декременты

Перед изучением for и иных «петлей» в СИ, каждый разработчик должен изучить инкременты и декременты. Без них создание программных кодов станет невозможным даже для новичков.

При работе с «петлями» в разработке ПО приходится часто пользоваться увеличением и уменьшением значений переменных на единицу. В C функционируют такие формы изменения как a +=1 и a -= 1, но чаще всего сделать необходимые операции помогают инкременты (++) и декременты (—).

Выражения типа ++i и i++ позволяют поменять исходное значение. Пользоваться записями типа I = ++i нет никакой необходимости. Это лишнее. Достаточно заполнить следующие правила и условия:

  1. Если знак декремента или инкремента стоит перед переменной, перед клиентом будет префиксная форма операции. В противном случае – постфиксная.
  2. В «классических» выражениях сделать инкремент и декремент можно как постфиксной записью, так и префиксной. Разницы между ними нет.
  3. Когда соответствующие записи участвуют в построении более сложных, необходимо учесть, что в постфиксной форме, переменная, с которой требуется сделать какие-либо действия в сложном выражении сначала используется «как есть», а затем уже увеличивается/уменьшается на единицу. В префиксной записи сначала реализовываются изменения, а затем переменная будет применяться.

Инкременты и декременты применяются не только в циклах. Они встречаются при работе с переменными вещественного типа в СИ и C++.

Классификация

Циклы в СИ и C++ бывают нескольких видов. Всего их три:

  • с параметром (счетчиком);
  • с постусловием;
  • с предусловием.

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

Цикл while

Создать цикл и использовать его в программном коде удается несколькими способами. Первый вариант – это «петля» с предусловием. Используется тогда, когда количество раз выполнения цикла известно заранее.

Форма записи в СИ:

Циклы в C++ и C

Циклы в C++ и C

Здесь сначала происходит проверка инструкции, написанной в while, а затем – реализация инструкций. Тело цикла, заключенное в фигурные скобки, будет выполняться до тех пор, пока заданное условие на выходе получает логическое значение истины (равняется true).

С постусловием

Создать «петлю» в программном коде на C++ и Си можно, используя постусловие. Он напоминает предыдущий вариант в обоих языках разработки. при его реализации один проход цикла будет выполняться всегда, независимо от имеющегося условия.

Циклы в C++ и C

Соответствующий фрагмент позволяет сначала выполнить код цикла в СИ, затем – проверить условия, записанные в инструкции while. Пока оно истинно (не равно 0), алгоритм будет повторяться снова и снова.

Вот – наглядный пример кода:

#include stdio.h int main (void) < int i = 6; do < printf("%d", i); i--; >while (i > 0); return 0; >

Функция (исходный код) будет работать 6 раз – до тех пор, пока значение переменной i не достигнет 0. «Петля» с do всегда гарантирует выполнение прописанных в теле действий один раз. Это относится даже к ситуациям, при которых первый же результат проверки заданного условия не является истиной.

С параметром

Наиболее простой и распространенный метод, помогающий создавать «петли» – это функция со счетчиком. За нее отвечает оператор for в языке C и C++. Соответствующая запись встречается в большинстве языков разработки. Обозначается при помощи for всегда.

При помощи for можно создать цикл тогда, когда известно точное количество итераций. Они будут известны еще до непосредственного запуска программного обеспечения.

Синтаксическая конструкция for в СИ:

Циклы в C++ и C

В C++ запись for будет следующей:

Циклы в C++ и C

Цикл for СИ – это функция, которая включает в себя несколько частей:

  1. Первая — инициализация. Она осуществляется всего один раз, в самом начале for. Представлена установкой начальных условий. Обычно выражена счетчиками – специальными переменными (h int), используемыми для контроля за циклом.
  2. Вторая – условие. Оно формирует требование, которое при значении истины (true или 1) будет реализовывать то, что написано в for. В виде условия часто используется операция сравнения.
  3. Третья – приращение. Является необязательным. Используется в for для определения «шага». Указывает, на сколько система делает увеличение или уменьшение заданного значения переменной при следующей итерации.

Если не указывать приращение, оно будет стандартным – +1. Ниже – пример использования for в C:

Циклы в C++ и C

  1. Сначала происходит инициализация счетчика i, значение которого равно 0. I 10 тоже допускается, но в «классическом» примере параметр изначально равняется нулю. Так проще разобраться с принципами работы for.
  2. Счетчик представляем тип int. Можно воспользоваться любым другим числовым.
  3. Далее пишется условие, при котором выполняется тело цикла. В заданном примере – до i = 6.
  4. Последний этап – это приращение. В представленном фрагменте оно будет равно +1. Для уменьшения используется запись i—.

Выше – результат реализации цикла с for, фрагмент которого написан ранее. Для C++ можно рассмотреть такой код:

Циклы в C++ и C

Соответствующий фрагмент используется для счета суммы всех чисел в пределах от 1 до 1 000.

Операторы Break и Continue

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

Оператор break завершает цикл и выходит из него. К следующей итерации он не переходит:

Циклы в C++ и C

В заданном фрагменте система выйдет из цикла, когда i будет более 5. Еще один вариант – это использование оператора Continue. В отличие от break, он позволяет перейти к следующей итерации. Пример – можно посчитать сумму только нечетных чисел из заданного разработчиком диапазона.

Циклы в C++ и C

Пример соответствующего кода приведен выше. Он тоже использует for. Здесь сначала система должна узнать, четное ли заданное число или нет. Для этого применяется процедура нахождения остатка от целочисленного деления на 2. Если соответствующий параметр равен нулю, при помощи continue можно перейти к следующей итерации. В противном случае оно относится к нечетным. Его необходимо прибавить к остальным аналогичным числам.

P. S. Интересует разработка? Обратите внимание на курс «Программист C» . Также в Otus доступно множество других современных курсов. Ниже – один из них:

#5 — Циклы в Си и операторы в них

За счёт циклов вы можете создавать повторяющийся код множество раз подряд. В языке Си существует несколько циклов, а также операторов в них. За урок мы научимся работать с циклами в Си.

Видеоурок

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

Цикл For

В цикле for все условия записываются в одном месте, что очень удобно во многих случаях. Стандартная запись такого цикла выглядит следующим образом:

for (int i = 0; i < 10; i++) printf("%d\n", i);

В объявлении цикла записывается следующее: переменная цикла, её начальное значение и диапазон. В примере выше будут выведены числа от 0 до 10.

Если в теле цикла всего одна строка кода, то фигурные скобки можно пропустить и не записывать их.

Цикл While

Суть цикла while не особо отличается от цикла for . Единственное отличие заключается в способе записи цикла. В while необходимо прописать лишь условие, а все остальные параметры записываются вне цикла:

int i = 1; // Создание переменной while (i 

Цикл Do While

Цикл схож с циклом while по форме написания, но при этом работает немного по-другому. Цикл do..while будет выполнен один раз сто процентов, а дальше проверит условие и если оно верно, то цикл будет выполняться дальше:

int x = 13; do < x--; printf("%d\n", i); >while (x > 10);

Как видно из примера, цикл изначально неверный, но это не мешает ему сработать один раз.

Операторы для работы в циклах

Существует два основных оператора для работы в циклах:

  • Оператор break - служит для выхода из цикла полностью;
  • Оператор continue - пропускает лишь одну итерацию и не выходит из цикла.
Весь код будет доступен после подписки на проект!

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Циклы в языке C: while, do-while, for. Инкремент и декремент

Прежде, чем изучать циклы, следует познакомиться с часто используемым в языке C способом увеличения/уменьшения значений переменных на единицу. Конечно, в Си работают такие формы изменения значений как, например, a += 1 или a -= 1 . Однако чаще используют операции инкрементирования (оператор инкремента ++ ) и декрементирования (оператор декремента -- ): i++ или ++i , i-- или --i . В результате этих операций переменные увеличиваются или уменьшаются на единицу.

Запомните, когда вы видите выражения типа ++i или i++ , то в результате их выполнения значение i меняется. Не надо делать вот так: i = ++i . Это совершенно лишнее.

Когда знак инкремента или декремента стоит перед переменной, то перед нами префиксная форма операции ( ++i , --i ), а когда после переменной, то постфиксная форма ( i++ , i-- ). Когда эти выражения не участвуют в построении более сложных выражений, то между префиксной и постфиксной формами никакой разницы нет: что i++ , что ++i — без разницы, в результате мы получим значение i на единицу больше.

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

int a, b, c, d; /* выражение означает, что всем переменным присваивается 0 */ a = b = c = d = 0; printf("a=%d, b=%d, c=%d, d=%d\n", a, b, c, d); c = ++a; d = b++; printf("a=%d, b=%d, c=%d, d=%d\n", a, b, c, d);

, выведет на экране:

a=0, b=0, c=0, d=0 a=1, b=1, c=1, d=0

Объясняется такой результат так:

  • значение переменной a было увеличено на единицу, после чего это значение было присвоено переменной c ;
  • значение переменной b было сначала присвоено переменной d и только потом увеличено на единицу.

Еще один пример:

int x, y; x = y = 0; printf("%d\n", x++ > 0); printf("%d\n", ++y > 0);

На экране будет выведено:

Это результат логических выражений, где 0 означает ложь, а 1 — истину. В данном случае, когда x сравнивается с нулем, то его значение еще не увеличено, а когда сравнивается у , то его значение уже больше нуля.

Применять операторы инкремента и декремента можно также к переменным вещественного типа.

Цикл while

Цикл while в языке программирования C работает также как и в других языках программирования. По аналогии с условным выражением в инструкции if , условное выражение при while заключается в круглые скобки. Если тело цикла включает несколько выражений разделяемых точкой с запятой, то все тело заключается в фигурные скобки.

  1. Присвойте переменной star значение 0. Пока значение star не достигнет 55 выводите на экран в строку по одной звездочке ( * ).
  2. С помощью цикла while запрограммируйте вывод на экран цифровых кодов и значений таблицы символов ASCII от 31 до 127 включительно. При этом после каждого десятого символа осуществляйте переход на новую строку. (Подсказка: чтобы переходить на новую строку, в цикле while надо использовать инструкцию if , в условии которой остаток 1 от деления на 10 сравнивается с нулем.) Вывод таблицы ASCII с помощью цикла while
  3. Используя внешний и вложенный циклы while организуйте вывод таблицы умножения на экран. Вывод таблицы умножения с помощью цикла while

1 Операция нахождения остатка от деления в языке C обозначается знаком процента % .

Цикл do-while

Цикл do-while отличается от while лишь тем, что его тело будет выполнено хотя бы один раз независимо от условия выполнения цикла. Синтаксис цикла do-while можно описать так (фигурные скобки необязательны, если выражение только одно):

do < выражение1; …; >while (логич_выражение);

Этот цикл называют циклом с постусловием. Его используют реже обычного while . В принципе почти всегда можно обойтись без do-while , но в определенных ситуациях его использование упрощает код. Допустим требуется вывести на экран отдельные цифры числа. Любое число состоит хотя бы из одной цифры, даже число 0. Можно решить эту задачу с использованием цикла while :

while (a > 0) { printf("%d\n", a % 10); a = a / 10; }

Но в этом случае, если a равно 0, то цикл не выполнится ни разу. Пришлось бы перед циклом использовать инструкцию if , в которой сравнивать переменную с 0. Использование же цикла do-while решает эту проблему, т. к. его тело один раз выполнится даже при нулевом значении переменной:

do { printf("%d\n", a % 10); a = a / 10; } while (a > 0);

Цикл for

Представим синтаксис заголовка цикла for языка программирования C так:

for (часть1; часть2; часть3)

Заголовок цикла for включает три части, разделенных точкой с запятой; причем каждая часть может быть сложной, т. е. состоять из нескольких выражений, разделенных простой запятой. В первой части обычно указываются переменные и часто их начальные значения; во второй – с помощью логического(их) выражения(й) задаются условия, при которых выполняется тело цикла; в третью часть помещаются выражения, которые выполняются в конце каждой итерации цикла (чаще всего здесь изменяется значение переменной, заданной в первой части заголовка).

Вот так будет выглядеть программный код, выводящий таблицу символов на экран, в котором используется цикл for :

unsigned char a; for (a = 31; a  128; a++) { if (a % 10 == 0) printf("\n"); printf("%4d-%c", a, a); } printf("\n");

Напишите программу с использованием цикла for , выводящую на экран таблицу умножения (Подсказка: как и в случае с while следует использовать два цикла — внешний и вложенный.)

Операторы break и continue

Оператор break позволяет прервать выполнение цикла, а continue — прервать текущую итерацию (проход) цикла. Почти всегда можно обойтись без этих операторов, но иногда их использование позволяет упростить программный код и сделать его более понятным.

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

#define N 10 int arr[N] = {6, 5, -4, 3, -7, 2, 7, 0, 3, 9}; int new_arr[N], i, j; for (i=0; iN; i++) { if (arr[i] == 0) { printf("\nIt contains zero"); break; } // не обязательно printf("%d ", arr[i]); } printf("\n");

Второй пример. Требуется из одного массива скопировать в другой только числа, которые больше 0. Можно с помощью continue прерывать итерацию цикла, если очередной элемент меньше либо равен нулю.

for(i=0, j=0; iN; i++) { if (arr[i]  0) continue; new_arr[j] = arr[i]; printf("%d ", new_arr[j]); j++; } printf("\n");

В данном случае использование continue совсем не очевидно с точки зрения надобности, т. к. легко можно обойтись без него, если изменить условие при if на противоположное, удалить continue , а оставшийся код поместить в тело оператора if .

Курс с решением задач:
pdf-версия

Что такое цикл в с

Циклы являются управляющими конструкциями, позволяя в зависимости от определенных условий выполнять некоторое действие множество раз. В C# имеются следующие виды циклов:

Цикл for

Цикл for имеет следующее формальное определение:

for ([действия_до_выполнения_цикла]; [условие]; [действия_после_выполнения]) < // действия >

Объявление цикла for состоит из трех частей. Первая часть объявления цикла - некоторые действия, которые выполняются один раз до выполнения цикла. Обычно здесь определяются переменные, которые будут использоваться в цикле.

Вторая часть - условие, при котором будет выполняться цикл. Пока условие равно true , будет выполняться цикл.

И третья часть - некоторые действия, которые выполняются после завершения блока цикла. Эти действия выполняются каждый раз при завершении блока цикла.

После объявления цикла в фигурных скобках помещаются сами действия цикла.

Рассмотрим стандартный цикл for:

for (int i = 1; i

Здесь первая часть объявления цикла - int i = 1 - создает и инициализирует переменную i.

И третья часть - действия, выполняемые после завершения действий из блока цикла - увеличение переменной i на единицу.

Весь процесс цикла можно представить следующим образом:

В итоге блок цикла сработает 3 раза, пока значение i не станет равным 4. И каждый раз это значение будет увеличиваться на 1. Однократное выполнение блока цикла называется итерацией . Таким образом, здесь цикл выполнит три итерации. Результат работы программы:

1 2 3

Если блок цикла for содержит одну инструкцию, то мы можем его сократить, убрав фигурные свобки:

for (int i = 1; i < 4; i++) Console.WriteLine(i); // или так for (int i = 1; i < 4; i++) Console.WriteLine(i);

При этом необязательно именно в первой части цикла объявлять переменную, а в третий части изменять ее значение - это могут быть любые действия. Например:

var i = 1; for (Console.WriteLine("Начало выполнения цикла"); i < 4; Console.WriteLine($"i = "))

Здесь опять же цикл срабатывает, пока переменная i меньше 4, только приращение переменной i происходит в блоке цикла. Консольный вывод данной программы:

Начало выполнения цикла i = 2 i = 3 i = 4

Нам необязательно указывать все условия при объявлении цикла. Например, мы можем написать так:

int i = 1; for (; ;) < Console.WriteLine($"i = "); i++; >

Формально определение цикла осталось тем же, только теперь блоки в определении у нас пустые: for (; 😉 . У нас нет инициализированной переменной, нет условия, поэтому цикл будет работать вечно - бесконечный цикл.

Мы также можем опустить ряд блоков:

int i = 1; for (; i<4;) < Console.WriteLine($"i = "); i++; >

Этот пример по сути эквивалентен первому примеру: у нас также есть переменная-счетчик, только определена она вне цикла. У нас есть условие выполнения цикла. И есть приращение переменной уже в самом блоке for.

Также стоит отметить, что можно определять несколько переменных в объявлении цикла:

for (int i = 1, j = 1; i < 10; i++, j++) Console.WriteLine($"");

Здесь в первой части объявления цикла определяются две переменных: i и j. Цикл выполняется, пока i не будет равна 10. После каждой итерации переменые i и j увеличиваются на единицу. Консольный вывод программы:

1 4 9 16 25 36 49 64 81

Цикл do..while

В цикле do сначала выполняется код цикла, а потом происходит проверка условия в инструкции while. И пока это условие истинно, цикл повторяется.

do < действия цикла >while (условие)
int i = 6; do < Console.WriteLine(i); i--; >while (i > 0);

Здесь код цикла сработает 6 раз, пока i не станет равным нулю. Но важно отметить, что цикл do гарантирует хотя бы единократное выполнение действий, даже если условие в инструкции while не будет истинно. То есть мы можем написать:

int i = -1; do < Console.WriteLine(i); i--; >while (i > 0);

Хотя у нас переменная i меньше 0, цикл все равно один раз выполнится.

Цикл while

В отличие от цикла do цикл while сразу проверяет истинность некоторого условия, и если условие истинно, то код цикла выполняется:

while (условие)
int i = 6; while (i > 0)

Цикл foreach

Цикл foreach предназначен для перебора набора или коллекции элементов. Его общее определение:

foreach(тип_данных переменная in коллекция) < // действия цикла >

После оператора foreach в скобках сначала идет определение переменной. Затем ключевое слово in и далее коллекция, элементы которой надо перебрать.

При выполнении цикл последовательно перебирает элементы коллекции и помещает их в переменную, и таким образом в блоке цикла мы можем выполнить с ними некоторые действия.

Например, возьмем строку. Строка по сути - это коллекция символов. И .NET позволяет перебрать все элементы строки - ее символы с помощью цикла foreach .

foreach(char c in "Tom")

Здесь цикл foreach пробегается по всем символам строки "Tom" и каждый символ помещает в символьную переменную c . В блоке цикла значение переменной c выводится на консоль. Поскольку в строке "Tom" три символа, то цикл выполнится три раза. Консольный вывод программы:

T o m

Стоит отметить, что переменная, которая определяется в объявлении цикла, должна по типу соответствовать типу элементов перебираемой коллекции. Так, элементы строки - значения типа char - символы. Поэтому переменная c имеет тип char . Однако в реальности не всегда бывает очевидно, какой тип представляют элементы коллекции. В этом случае мы можем определить переменную с помощью оператора var :

foreach(var c in "Tom")

В дальнейшем мы подробнее рассмотрим, что представляют собой коллекции в .NET и какие именно коллекции можно перебирать с помощью цикла foreach .

Операторы continue и break

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

for (int i = 0; i

Хотя в условии цикла сказано, что цикл будет выполняться, пока счетчик i не достигнет значения 9, в реальности цикл сработает 5 раз. Так как при достижении счетчиком i значения 5, сработает оператор break, и цикл завершится.

0 1 2 3 4

Теперь поставим себе другую задачу. А что если мы хотим, чтобы при проверке цикл не завершался, а просто пропускал текущую итерацию. Для этого мы можем воспользоваться оператором continue :

for (int i = 0; i

В этом случае цикл, когда дойдет до числа 5, которое не удовлетворяет условию проверки, просто пропустит это число и перейдет к следующей итерации:

0 1 2 3 4 6 7 8

Стоит отметить, что операторы break и continue можно применять в любом типе циклов.

Вложенные циклы

Одни циклы могут быть вложенными в другие. Например:

for (int i = 1; i < 10; i++) < for (int j = 1; j < 10; j++) < Console.Write($"\t"); > Console.WriteLine(); >
  • Вопросы для самопроверки
  • Упражнения
  • Глава 1. Введение в C#
    • Язык C# и платформа .NET
    • Первая программа на C# с .NET CLI
    • Начало работы с Visual Studio. Первая программа
    • Первое приложение в WSL
    • Структура программы
    • Переменные и константы
    • Литералы
    • Типы данных
    • Консольный ввод-вывод
    • Арифметические операции
    • Поразрядные операции
    • Операции присваивания
    • Преобразования базовых типов данных
    • Условные выражения
    • Конструкция if..else и тернарная операция
    • Циклы
    • Массивы
    • Задачи с массивами
    • Методы
    • Параметры методов
    • Возвращение значения и оператор return
    • Передача параметров по ссылке и значению. Выходные параметры
    • Массив параметров и ключевое слово params
    • Рекурсивные функции
    • Локальные функции
    • Конструкция switch
    • Перечисления enum
    • Классы и объекты
    • Конструкторы, инициализаторы и деконструкторы
    • Класс Program и метод Main. Программы верхнего уровня
    • Структуры
    • Типы значений и ссылочные типы
    • Область видимости (контекст) переменных
    • Пространства имен
    • Глобальные пространства имен
    • Подключение пространств имен по умолчанию
    • Создание библиотеки классов в Visual Studio
    • Создание библиотеки классов с помощью .NET CLI
    • Модификаторы доступа
    • Свойства
    • Перегрузка методов
    • Статические члены и модификатор static
    • Установка пакетов Nuget
    • Константы, поля и структуры для чтения
    • Null и ссылочные типы
    • Null и значимые типы
    • Проверка на null, операторы ?. и ??
    • Псевдонимы типов и статический импорт
    • Наследование
    • Преобразование типов
    • Виртуальные методы и свойства
    • Скрытие методов и свойств
    • Различие переопределения и скрытия методов
    • Абстрактные классы
    • Класс System.Object и его методы
    • Обобщенные типы
    • Ограничения обобщений
    • Наследование обобщенных типов
    • Конструкция try..catch..finally
    • Блок catch и фильтры исключений
    • Типы исключений. Класс Exception
    • Генерация исключения и оператор throw
    • Создание классов исключений
    • Поиск блока catch при обработке исключений
    • Делегаты
    • Применение делегатов
    • Анонимные методы
    • Лямбды
    • События
    • Ковариантность и контравариантность делегатов
    • Делегаты Action, Predicate и Func
    • Замыкания
    • Определение интерфейсов
    • Применение интерфейсов
    • Явная реализация интерфейсов
    • Реализация интерфейсов в базовых и производных классах
    • Наследование интерфейсов
    • Интерфейсы в обобщениях
    • Копирование объектов. Интерфейс ICloneable
    • Сортировка объектов. Интерфейс IComparable
    • Ковариантность и контравариантность обобщенных интерфейсов
    • Определение операторов
    • Перегрузка операций преобразования типов
    • Индексаторы
    • Переменные-ссылки и возвращение ссылки
    • Методы расширения
    • Частичные классы и методы
    • Анонимные типы
    • Кортежи
    • Records
    • Паттерн типов
    • Паттерн свойств
    • Паттерны кортежей
    • Позиционный паттерн
    • Реляционный и логический паттерны
    • Паттерны списков
    • Список List
    • Двухсвязный список LinkedList
    • Очередь Queue
    • Стек Stack
    • Словарь Dictionary
    • Класс ObservableCollection
    • Интерфейсы IEnumerable и IEnumerator
    • Итераторы и оператор yield
    • Класс Array и массивы
    • Span
    • Индексы и диапазоны
    • Строки и класс System.String
    • Операции со строками
    • Форматирование и интерполяция строк
    • Класс StringBuilder
    • Регулярные выражения
    • Структура DateTime
    • Форматирование дат и времени
    • DateOnly и TimeOnly
    • Отложенная инициализация и тип Lazy
    • Математические вычисления и класс Math
    • Преобразование типов и класс Convert
    • Введение в многопоточность. Класс Thread
    • Создание потоков. Делегат ThreadStart
    • Потоки с параметрами и ParameterizedThreadStart
    • Синхронизация потоков
    • Мониторы
    • Класс AutoResetEvent
    • Мьютексы
    • Семафоры
    • Задачи и класс Task
    • Работа с классом Task
    • Задачи продолжения
    • Класс Parallel
    • Отмена задач и параллельных операций. CancellationToken
    • Асинхронные методы, async и await
    • Возвращение результата из асинхронного метода
    • Последовательное и параллельное выполнение. Task.WhenAll и Task.WhenAny
    • Обработка ошибок в асинхронных методах
    • Асинхронные стримы
    • Основы LINQ
    • Проекция данных
    • Фильтрация коллекции
    • Сортировка
    • Объединение, пересечение и разность коллекций
    • Агрегатные операции
    • Получение части коллекции
    • Группировка
    • Соединение коллекций
    • Проверка наличия и получение элементов
    • Отложенное и немедленное выполнение LINQ
    • Делегаты в запросах LINQ
    • Введение в Parallel LINQ. Метод AsParallel
    • Метод AsOrdered
    • Обработка ошибок и отмена параллельных операции
    • Введение в рефлексию. Класс System.Type
    • Применение рефлексии и исследование типов
    • Исследование методов и конструкторов с помощью рефлексии
    • Исследование полей и свойств с помощью рефлексии
    • Динамическая загрузка сборок и позднее связывание
    • Атрибуты в .NET
    • DLR в C#. Ключевое слово dynamic
    • DynamicObject и ExpandoObject
    • Использование IronPython в .NET
    • Сборщик мусора в C#
    • Финализируемые объекты. Метод Dispose
    • Конструкция using
    • Указатели
    • Указатели на структуры, члены классов и массивы
    • Работа с дисками
    • Работа с каталогами
    • Работа с файлами. Классы File и FileInfo
    • FileStream. Чтение и запись файла
    • Чтение и запись текстовых файлов. StreamReader и StreamWriter
    • Бинарные файлы. BinaryWriter и BinaryReader
    • Архивация и сжатие файлов
    • Сериализация в JSON. JsonSerializer
    • XML-Документы
    • Работа с XML с помощью System.Xml
    • Изменение XML-документа
    • XPath
    • Linq to Xml. Создание Xml-документа
    • Выборка элементов в LINQ to XML
    • Изменение документа в LINQ to XML
    • Сериализация в XML. XmlSerializer
    • Процессы
    • Домены приложений
    • AssemblyLoadContext и динамическая загрузка и выгрузка сборок
    • Native AOT
    • Нововведения в C# 11
    • Нововведения в C# 12

    Помощь сайту
    410011174743222
    Перевод на карту
    Номер карты:
    4048415020898850

    Контакты для связи: metanit22@mail.ru

    Copyright © metanit.com, 2024. Все права защищены.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *