Слайд 2Циклы
Циклы являются управляющими конструкциями, позволяя в зависимости от определенных условий выполнять некоторое действие
множество раз.
Тело цикла – набор операторов внутри цикла.
Итерация – однократное выполнение тела цикла.
Слайд 3В C# имеются следующие виды циклов:
for
while
do...while
Слайд 4Цикл while
Слово while переводится, как «пока», что хорошо его характеризует. Он продолжает выполнятся
до тех пор, пока «истинно» некоторое условие.
Слайд 5Структура цикла while
while (условие продолжения)
{
//блок кода, который будет повторяться
}
Слайд 6Пример цикла while
int i = 0;
while (i < 5)
{
Console.WriteLine(i);
i++;
}
Здесь цикл выполнится
5 раз, распечатаются числа от 0 до 4, далее условие станет ложным и выполнение цикла прекратится.
Слайд 7Пример цикла while
int i = 6;
while (i > 0)
{
Console.WriteLine(i);
i--;
}
Здесь цикл выполнится
6 раз, распечатаются числа от 6 до 1, далее условие станет ложным и выполнение цикла прекратится.
Слайд 8Пример цикла while
int i = 0;
while (i < 10)
{
Console.WriteLine(i);
i = i
+2 ;
}
Сколько раз выполнится цикл и что выведется на экран?
Слайд 9Вечный цикл
while (true)
{
Console.WriteLine("Вечный цикл");
}
Слайд 10Цикл do-while
Этот тот же цикл while, только здесь сначала выполняется блок кода, а
уже потом идет проверка условия. Это гарантирует хотя бы один проход цикла.
Слайд 11Структура цикла do-while
do
{
//блок кода, который будет повторяться
}
while (условие продолжения);
Слайд 12Пример цикла do-while
iint i = 6;
do
{
Console.WriteLine(i);
i--;
}
while (i > 0);
Здесь код цикла
сработает 6 раз, пока i не станет равным нулю. Но важно отметить, что цикл do гарантирует хотя бы единократное выполнение действий, даже если условие в инструкции while не будет истинно.
Слайд 13Пример цикла do-while
int i = -1;
do
{
Console.WriteLine(i);
i--;
}
while (i > 0);
Хотя у нас
переменная i меньше 0, цикл все равно один раз выполнится.
Слайд 14Пример цикла do-while
do
{
Console.WriteLine("цикл");
}
while (false);
Сколько раз выполнится цикл и что выведется на экран?
Слайд 15Цикл for
Этот цикл используется тогда, когда наперед известно, сколько повторений нужно сделать.
Слайд 16Структура цикла for
for ([инициализация счетчика]; [условие]; [изменение счетчика])
{
// действия
}
Слайд 17Пример цикла for
for (int i = 0; i < 9; i++)
{
Console.WriteLine(i);
}
Первая часть
объявления цикла - int i = 0 - создает и инициализирует счетчик i. Счетчик необязательно должен представлять тип int. Это может быть и другой числовой тип, например, float. В данном случае это то же самое, что и объявление переменной.
Слайд 18Пример цикла for
for (int i = 0; i < 9; i++)
{
Console.WriteLine(i);
}
Вторая часть
- условие, при котором будет выполняться цикл. Пока условное выражение возвращает true, будет выполняться цикл. В данном случае цикл будет выполняться, пока счетчик i не достигнет 9.
И третья часть - приращение счетчика на единицу. Опять же нам необязательно увеличивать на единицу. Можно уменьшать: i--.
В итоге блок цикла сработает 9 раз, пока значение i не станет равным 9. И каждый раз это значение будет увеличиваться на 1.
Слайд 19Особенности for
Необязательно указывать все условия при объявлении цикла. Любой блок можно опустить. Например
int
i = 0;
for (; ;)
{
Console.WriteLine(i);
}
Формально определение цикла осталось тем же, только теперь блоки в определении у нас пустые. Нет инициализированной переменной-счетчика, нет условия, поэтому цикл будет работать вечно - бесконечный цикл.
Слайд 20Пример цикла for
int i = 0;
for (; i<9;)
{
Console.WriteLine(i);
i++;
}
Этот пример по сути
эквивалентен первому примеру: также есть счетчик, только создан он вне цикла. У нас есть условие выполнения цикла. И есть приращение счетчика уже в самом блоке for.
Слайд 21Оператор break
Иногда возникает ситуация, когда требуется выйти из цикла, не дожидаясь его завершения.
В этом случае мы можем воспользоваться оператором break.
Слайд 22Например
for (int i = 0; i < 9; i++)
{
if (i == 5)
break;
Console.WriteLine(i);
}
Хотя в условии цикла сказано, что цикл будет выполняться, пока счетчик i не достигнет значения 9, в реальности цикл сработает 5 раз. Так как при достижении счетчиком i значения 5, сработает оператор break, и цикл завершится.
Слайд 23Оператор continue
В отличии от break, если мы хотим, чтобы при проверке цикл не
завершался, а просто пропускал текущую итерацию. Для этого мы можем воспользоваться оператором continue
Слайд 24Например
for (int i = 0; i < 9; i++)
{
if (i == 5)
continue;
Console.WriteLine(i);
}
В этом случае цикл, когда дойдет до числа 5, которое не удовлетворяет условию проверки, просто пропустит это число и перейдет к следующей итерации
Слайд 25Факториал числа
Факториал числа — это произведение натуральных чисел от 1 до самого числа(включая
данное число). Обозначается факториал восклицательным знаком "!". Факториал определён только для натуральных чисел и нуля. Факториал нуля и единицы это 1.
Слайд 26Факториал(цикл for)
Console.Write("Введите число "); //выводит надпись на экран
string chislo = Console.ReadLine(); //chislo будет
хранить то, что мы введем
int result = 1; //переменная, будет хранить результат факториала числа
for (int i = 1; i <= Convert.ToInt32(chislo); i++)
{
result = result * i;
}
Console.WriteLine(result);
Console.ReadLine();
Слайд 27Факториал(цикл for)
В переменную chislo мы заносим число, введенное пользователем. Console.ReadLine() возвращает строковое значение,
поэтому переменная chislo тоже обязательно должна быть строковой, иначе вернется сообщение об ошибке. Конструкцией Convert.ToInt32 мы преобразуем строковый формат в числовой.
Слайд 28Факториал(цикл while)
Console.Write("Введите число ");
string chislo = Console.ReadLine();
int result = 1;
int i = 1;
while
(i <= Convert.ToInt32(chislo))
{
result = result * i;
i++;
}
Console.WriteLine(result);
Console.ReadLine();
Слайд 29Факториал(цикл do-while)
Console.Write("Введите число ");
string chislo = Console.ReadLine();
int result = 1;
int i = 1;
do
{
result = result * i;
i++;
}
while (i <= Convert.ToInt32(chislo));
Console.WriteLine(result);
Console.ReadLine();
Слайд 30Вложенные циклы
Циклы могут быть простые или вложенные (циклы в цикле). Вложенными могут быть
циклы любых типов: while, do-while, for. Каждый внутренний цикл должен быть полностью вложен во все внешние циклы. "Пересечения" циклов не допускаются.
Слайд 31Пример вложенного цикла
for (int i = 1; i <= 4; i++)
{
for (int j=1;
j<=5; j++)
{
Console.Write(" " + 2);
}
Console.WriteLine()
}
Слайд 32Задачи
Задача 1. Вывести на экран 20 элементов последовательности 1, 4, 7, 10, 13…
Задача
2. Напишите программу, которая будет «спрашивать» правильный пароль, до тех пор, пока он не будет введен. Правильный пароль пусть будет «root».
Задача 2. Напишите программу которая выводит таблицу умножения 8х8
Слайд 33Задача 1
int k = 1
for (int i = 0; i < 20; i++)
{
Console.WriteLine(k);
k = k + 3;
}
Console.ReadLine();
Слайд 34Задача 2
string password;
do
{
Console.WriteLine("введите пароль:");
password = Console.ReadLine();
}
while(password != "root");
Console.WriteLine("Правильный пароль");
Console.ReadLine();