Оператор цикла с постусловием (do - while) — КиберПедия 

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Оператор цикла с постусловием (do - while)

2017-09-30 448
Оператор цикла с постусловием (do - while) 0.00 из 5.00 0 оценок
Заказать работу

Оператор do повторно выполняет оператор или блок операторов, заключенных в {}, пока определенное выражение не примет значение false. В следующем примере операторы цикла do - while выполняются до тех пор, пока пользователь не введёт значение из допустимого диапазона. Если в теле цикла всего один оператор, фигурные скобки ставить не нужно.

int N; string s;

do

{

Console.Write("Введите N в интервале 0..10 N=");

s = Console.ReadLine();

N = Convert.ToInt32(s);

}

while (N < 0 || N > 10);

 

Console.WriteLine("Введённое число равно {0} ", N);

Console.ReadKey();

Цикл do-while выполняется как минимум один раз, так как вычисление значения условного выражения выполняется после тела цикла. В любой точке блока do-while цикл можно разорвать с помощью оператора break. Для перехода непосредственно к оператору вычисления выражения while используется оператор continue; если выражение имеет значение true, выполнение продолжается в первом операторе цикла. Если выражение имеет значение false, выполнение продолжается в первом операторе после цикла do-while.

Пример: Дано целое число N > 0. С помощью операций деления нацело и взятия остатка от деления определить, имеются ли в записи числа N нечетные цифры.

int N; string s; bool f;

Console.Write("Введите целое положительное число N=");

s = Console.ReadLine();

N = Convert.ToInt32(s);

int n = N; //сохраним исходное значение

 

f = false;

do

{

if (N % 2 == 1) f = true;

N = N / 10;

} while (N!= 0 &&!f);

 

if (f) Console.WriteLine("Нечётные цифры в числе {0} есть", n);

else Console.WriteLine("Нечётных цифр в числе {0} нет", n);

Console.ReadKey();

 

Оператор цикла с предусловием (while)

 

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

Цикл while может быть прерван оператором break, который передает управление за пределы цикла. Чтобы передать управление на следующую итерацию без выхода из цикла, используйте оператор continue.

Пример: Внесённая в банк сумма равна S, процентная ставка N годовых, определить с помощью цикла while на сколько лет нужно сделать размещение чтобы получить сумму F.

 

double S, F, N; string s; int i;

Console.Write("Введите начальную сумму S=");

s = Console.ReadLine();

S = Convert.ToDouble(s);

Console.Write("Введите процентную ставку годовых (%) N=");

s = Console.ReadLine();

N = Convert.ToDouble(s);

Console.Write("Введите желаемую сумму F=");

s = Console.ReadLine();

F = Convert.ToDouble(s);

i = 0; //счётчик годов

while (S < F)

{

S = S * (1 + N / 100);

i++;

}

Console.WriteLine("Нужную сумму придётся ждать {0} лет, она составит {1} ", i, S);

Console.ReadKey();

 

РАЗДЕЛ: Массивы, строки

Массивы одномерные

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

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

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

Индексный массив — именованный набор однотипных переменных, расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу.

Одномерный массив объектов объявляется следующим образом:

тип_элемента[] имя_массива;

int[] myArray1;

Часто элементы в массиве инициализируются в это же время, как показано ниже:

int[] massiv1 = new int[12];

Здесь между разделителями [ и ] находится константное выражение, значение которого определяет размерность массива.

Значение по умолчанию числовых элементов массива задано равным нулю, а элементы ссылок имеют значение null, но значения можно инициализировать при создании массива следующим образом:

int[] myArray2 = new int[] { 7, 13, 4, 2 };

int[] myArray3 = { 5, 9, 3, 17, 9 };

 

Можно создавать массивы из строк:

string[] days = { "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat" };

 

Индексация массивов начинается с нуля, поэтому номер первого элемента массива равен 0. Обращение к элементу массива осуществляется через квадратные скобки [ и ].

myArray2[2] = 17;

 

 

Пример: Написать программу, осуществляющую ввод целых чисел в массив. Из полученного массива распечатать элементы превышающие среднее арифметическое всего массива.

int i,N; string s;double av;

//вводим число элементов

Console.Write("Введите число элементов массива N=");

s = Console.ReadLine();

N = Convert.ToInt32(s);

//создаём массив необходимой длины

int[] massiv1 = new int[N]; av = 0;

//запускаем цикл по всем элементам массива

for (i = 0; i < N; i++)

{

//вводим i-ый элемент

Console.Write("Введите {0}-й элемент массива ",i);

s = Console.ReadLine();

massiv1[i] = Convert.ToInt32(s);

//суммируем все элементы массива

av += massiv1[i];

}

//находим среднее арифметическое

av /=N;

//запускаем цикл по всем элементам массива

for (i = 0; i < N; i++)

//печатаем только элементы больше среднего

if (massiv1[i] > av) Console.Write("{0} ", massiv1[i]);

Console.ReadKey();

Массивы можно целиком переприсваивать:

int[] massiv1 = new int[50];

Обрабока элементов массива

//обьявляем массив massiv2 без инициализации

int[] massiv2;

massiv2 = massiv1;//переприсваиваем

 

Чтобы узнать число элементов в массиве используют свойство Length:

N = massiv1.Length;

 

Оператор foreach

 

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

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

В любой точке блока foreach можно разорвать цикл с помощью ключевого слова break или перейти к следующей итерации в цикле с помощью ключевого слова continue.

Цикл foreach также может быть разорван при помощи операторов goto, return или throw.

Пример: Распечатать содержимое массива в одну колонку

int[] myarray5 = new int[] { 0, 1, 2, 3, 5, 8, 13 };

 

// В операторе foreach требуется указать и тип, и идентификатор

foreach (int i in myarray5)

Console.WriteLine(i);

 

 

Пример: Во введённом массиве определить минимальный элемент

 

int i,N; string s;

Console.Write("Введите число элементов массива N=");

s = Console.ReadLine();

N = Convert.ToInt32(s);

 

int[] massiv1 = new int[N];

for (i = 0; i < N; i++)

{

Console.Write("Введите {0}-й элемент массива ",i);

s = Console.ReadLine();

massiv1[i] = Convert.ToInt32(s);

}

 

//Временно считаем, что самый первый

//элемент и есть минимальный

int min = massiv1[0];

 

//запускаем цикл по всем элементам массива

//при этом очередной элемент массива

//будет помещаться во временную переменную x

foreach (int x in massiv1)

//сравниваем текущий минимум

//с очередным элементом

//и если нужно обновляем

//текущий минимум

if (x < min) min = x;

 

Console.WriteLine("Минимальный элемент массива равен {0}", min);

Console.ReadKey();

 

 


Поделиться с друзьями:

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.024 с.