Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C#_04 / Class_04. Операторы цикла.docx
Скачиваний:
15
Добавлен:
19.04.2015
Размер:
231.35 Кб
Скачать
  1. Оператор цикла do_while (цикл с постусловием)

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

do <тело оператора> while (<выражение>);

Тело оператора do_while выполняется один или несколько раз до тех пор, пока выражение <выражение> не станет ложным. Вначале выполняется <тело оператора>, затем вычисляется <выражение>.

Если выражение ложно, то оператор do_while завершается и управление передается следующему оператору в программе.

Если выражение истинно, то тело оператора выполняется снова и снова проверяется выражение.

Пример 8. Найти количество цифр в десятичной записи заданного натурального числа n.

Если записать решение данной задачи по аналогии с примером 7, заменив сумму цифр суммой единиц,

int s=0;

while (n > 0)

{ s++;

n /= 10;

}

то для n=0 программа выдаст неверный ответ (s=0), т.к. «не заметит» единственной цифры 0. Исправим это, применив цикл с постусловием:

Console.Write("n=");

int n = int.Parse(Console.ReadLine());

int s = 0;

do

{ s++;

n /= 10;

}

while (n > 0);

Console.WriteLine("Количество цифр равно {0}", s);

  1. Прерывание цикла, операторы break, continue, return.

Иногда требуется прервать весь цикл или отдельную итерацию до завершения тела цикла. Решают данную задачу указанные ниже операторы:

  • Оператор break прерывает выполнение тела любого цикла for, do, while и передает управление следующему за циклом выполняемому оператору.

  • Оператор continue прерывает выполнение текущей итерации цикла и передает управление на следующую итерацию.

  • Для прерывания циклов, расположенных в функциях, можно воспользоваться оператором return. В отличие от оператора break, оператор return прервет не только выполнение цикла, но и выполнение той функции, в которой расположен цикл.

В данной задаче необходимо извлекать из числа десятичные цифры и добавлять их к сумматору. Легче эти цифры брать из младшего десятичного разряда и, разделив число на 10, удалять их из числа. Очевидно, что цикл работает, пока число

Пример 9. Дан набор целых чисел, завершающийся нулём. Найти количество положительных чисел.

Console.WriteLine("Вводите числа по одному в строке:");

int s=0;

while (true)

{

int k = int.Parse(Console.ReadLine());

if (k == 0) break;

if (k > 0) s++;

}

Console.WriteLine("Количество положительных чисел равно {0}", s);

Самостоятельная работа

1. Дано натуральное число N<1000.

Распечатать все числа от N до 2N по 10 чисел в строке.

2. Напечатать числа в виде таблицы

6 5 4 3 2 1

5 4 3 2 1

4 3 2 1

3 2 1

2 1

3. Протабулировать функцию y= x2-x+1 (получить таблицу значений). Границы интервала и шаг изменения аргумента вводятся.

4. Дано 10 целых чисел. Определить порядковый номер и значение наибольшего из отрицательных чисел.

5. Дано набор вещественных чисел, завершающийся нулём. Найти среднее арифметическое среди отрицательных чисел.

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

7. a) ,b) ,c).

Задания, которые не сданы в классе, дописываются в отчёт по домашней работе Home05 (только текст задания, текст программы и скриншот).

Соседние файлы в папке C#_04