Similar presentations:
Основы программирования. Циклы
1. Основы программирования
Самойлов Михаил Юрьевич2. Циклы
Циклы являются управляющими конструкциями, позволяя в зависимости отопределенных условий выполнять некоторое действие множество раз.
Тело цикла – набор операторов внутри цикла.
Итерация – однократное выполнение тела цикла.
3. В C# имеются следующие виды циклов:
forwhile
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 = 1for (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();
35. Задача 3
// Этот цикл проходит по строкамfor (int i = 1; i <= b; i++)
{
// Этот цикл проходит по столбцам
for (int j = 1; j <= b; j++)
{
Console.Write(i * j + "\t");
}
Console.WriteLine();
}
Console.ReadLine();