Шаг i в начале шага Экран i в конце шага




ОПЕРАТОРЫУПРАВЛЕНИЯ

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

Следование

Операторы по умолчанию выполняются последовательно в порядке записи. Операторы, заключенные в фигурные скобки {} образуют блок операторов. Блок операторов рассматривается транслятором как один составной оператор.

{оператор … оператор} блок операторов

 

В качестве оператора могут быть:

· объявление

· выражение, заканчивающееся символом точи с запятой

· управление

· блок операторов

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

 
 


Ветвление

If (логическое выражение P)

Оператор1

Else

Оператор2

 

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

Допускается сокращенное ветвление.

if (P) оператор;

Пример:

Вычислить значение переменной, заданной соотношением

x2, если х<0

y=

х+10, если х≥0

Фрагмент программы с использованием ветвления:

double x, y;

x = double.Parse(Console.ReadLine());

if (x < 0)

y = x * x;

else

y = x + 10;

 

Фрагмент программы с использованием ветвления:

double x, y;

x = double.Parse(Console.ReadLine());

y = 0.0;

if (x < 0)

y = x * x;

if (x>=0)

y = x + 10;

 

3. Циклы

Цикл с предусловием

While (P) оператор

Цикл с постусловием

do

Оператор

while (P);

Универсальный цикл

For(выражение1; выражение2; выражение3) оператор

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

1. вычисляется выражение1, которое играет роль начальной установки параметров цикла

2. вычисляется выражение2, которое играет роль условия повтора цикла. Если значение этого выражения false, выполнение цикла завершается, в противном случае переходим к шагу 3.

3. Выполняется оператор, образующий тело цикла

4. вычисляется выражение3, которое играет роль модификатора параметров цикла

5. переход на шаг 2

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

Примеры использования циклов

int i=0; //Счетчик

while (i<2)

{

Console.WriteLine (“Снег”); //1

i++; //2

}

Шаг i в начале шага Экран i в конце шага

1 0 Снег 1

2 1 Снег 2

3 2

Если не образовать блок операторов, заключив строки 1 b 2 в фигурные скобки, то цикл будет выполняться до бесконечности, так как изменение значения счетчика не будет.

int i=0;

do

{

Console.WriteLine (“Снег”);

i++;

}

while (i<2);

Шаг i в начале шага Экран i в конце шага

1 0 Снег 1

2 1 Снег 2

int i;

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

Console.WriteLine (“Снег”);

Шаг i в начале шага Экран i в конце шага

1 0 Снег 1

2 1 Снег 2

3 2

for (;;)

Console.WriteLine (“Снег”);.//Бесконечный вывод этого сообщения

 

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

Выражение инициализации может содержать несколько выражений, разделенных “, ”, а объявлений – не более одного

Пример

Вычислить сумму n элементов следующего ряда. Сумму выводить после прибавления каждого слагаемого.

N

S=∑ i/(i2+1) = 1/2 + 2/5 + 3/10 + … + N/N2+1

i=1

int N;

string str; // рабочая строка для вывода на экран

int i;

double s; // переменная, в которой будет накапливается сумма

N=5;

for (i=1, s=0; i<=N; i++, Console.WriteLine(str))

{

s+=(double)i/(i*i+1.0);

str=s.ToString();

}

Второй вариант решения задачи

int N;

string str;

double s;

N=5;

s=0;

for (int i=0; i<=N; i++, Console.WriteLine(str))

{

s+=(double)i/(i*i+1.0);

str=s.ToString();\

}



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-10-21 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: