Блок операторов S int i=0

advertisement
Учебный курс
Объектно-ориентированный анализ и
программирование
Лекция 6
Операции и управляющие конструкции
Лекции читает
кандидат технических наук
Курак Михаил Валерьянович
Операции и методы
Объект типа
Стандартные операции
Объект ЗнакОперации Объект
Встроенного
Методы объекта
Объект.Метод(Аргументы)
Определяемого
разработчиком
Перегруженные операции
Объект ЗнакОперации Объект
Методы объекта
Объект.Метод(Аргументы)
Класс
Методы класса
(статические методы)
Класс.Метод(Аргументы)
2
Операции со встроенными типами
Операции
Арифметические
Отношения
Логические
Присваивание
Выражение – операнды, объединенные знаками операций.
Операндами могут быть:
Вызов метода
Переменная
Константа
Выражение
Операции имеют приоритет.
Приоритет предписывает очередность выполнения операций в выражении.
Операции одного приоритета выполняются слева направо (исключения
оговариваются особо).
Очередность выполнения операций можно регулировать скобками ( )
3
Приоритеты и ассоциативность операций
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Арифметические операции
Операция
тип после
преобразования
*/%
Независимо от совпадения типов
операндов:
Операнды целого типа со знаком короче,
чем int преобразуются в int
Операнды целого типа без знака короче,
чем uint, преобразуются в uint
+-
При несовпадении типов:
Перед выполнением операции операнд младшего типа преобразуется к
операнду старшего типа.
decimal
double
ulong
uint
long
int
float
Результат операции совпадает с типом операндов после преобразования
Примеры: 5.0/2.0 -> 2.5
5.0/2 -> 2.5
5/2 -> 2
5%2 -> 1
25
Операции отношения
bool
true (выполнено)
Операция
false (не выполнено)
< <=
bool
> >= кроме
== !=
bool a, b, c;
a= 10>5;
-> true
b= ’B’>’A’;-> true
c= 65==’A’;
-> true
любой тип
Примеры
26
Логические операции
bool
Операци
я
bool
true
false
!
(не) //унарная
&& (и)
|| (или)
Примеры
bool a;
a= !( 10>5 && 3==8 );
a= 10>5 || 3<8;
a= 10==5 || 3==8;
-> true
-> true
-> false
27
Операции со строками
Строка предназначена для хранения текста в виде множества символов
(кодировка Unicode: 1 символ – 2 байта).
0
1
Г
a[0]
У
a[1]
2
3
-
В
а[2]
a[3]
4
Ш
5
Э
a[4]
<= номера
<= значения элементов
a[5]
<= доступ к элементам
Отличие от массива: элементы строки доступны только для чтения
Тип строки объявлен как класс string, т.е. строка – это ссылочный тип
Операции перегружены и выполняются как для
типов значений
Присваивание
Отношения == и !=
Операция +
копируются символы строки
сравниваются символы
сцепление строк
string s1 = “Иванов”;
string s2 = “1986”;
string s3;
string s4 = “иванов”;
s3 =s 1 + s2;
s2[3] = ‘8’; //ОШИБКА
s1 == s4;
-> False
28
Операции со строками
Строка предназначена для хранения текста в виде множества символов
(кодировка Unicode: 1 символ – 2 байта).
0
1
Г
a[0]
У
a[1]
2
3
-
В
а[2]
a[3]
4
Ш
5
Э
a[4]
<= номера
<= значения элементов
a[5]
<= доступ к элементам
Отличие от массива: элементы строки доступны только для чтения
Тип строки объявлен как класс string, т.е. строка – это ссылочный тип
Операции перегружены и выполняются как для
типов значений
Присваивание
Отношения == и !=
Операция +
копируются символы строки
сравниваются символы
сцепление строк
string s1 = “Иванов”;
string s2 = “1986”;
string s3;
string s4 = “иванов”;
s3 =s 1 + s2;
s2[3] = ‘8’; //ОШИБКА
s1 == s4;
-> False
Преобразование строки в тип значения: Тип.Parse(строка)
double x = double.Parse(“5,45”);
Преобразование объекта в строку:
Объект.ToString()
string s = 541.ToString();
29
Операции и методы
Объект типа
Стандартные операции
Объект ЗнакОперации Объект
Встроенного
Методы объекта
Объект.Метод(Аргументы)
Определяемого
разработчиком
Перегруженные операции
Объект ЗнакОперации Объект
Методы объекта
Объект.Метод(Аргументы)
Класс
Методы класса
(статические методы)
Класс.Метод(Аргументы)
30
Следование
S1
S1
Блок S1
Блок S1
S2
S2
Блок - операторы, заключенные в фигурные скобки
{оператор … оператор}
Операторы в блоке выполняются последовательно в порядке их записи.
В качестве оператора могут быть:
объявление
выражение, заканчивающееся символом точи с запятой
управляющая конструкция
блок операторов
Локальная переменная – переменная, объявленная в блоке
Область видимости локальной переменной - блок, в котором она объявлена
и вложенные блоки
31
Ветвление
True
False
P
P
True
S1
S2
False
S1
S2
if ( P )
Блок операторов S1
else
Блок операторов S2
False
P
P
True
True
S
False
if ( P )
Блок операторов S
S
if (x < 0)
y = x * x;
else
y = x + 10;
if (x < 0)
if (x>=0)
y = x * x;
y = x + 10;
32
Циклы с пред и постусловием
while ( P)
Блок операторов S
False
P
Пока P истинно
True
S
S
int i=0;
while (i<2)
{
Console.WriteLine (“Снег”);
i++;
}
33
Циклы с пред и постусловием
while ( P)
Блок операторов S
False
P
Пока P истинно
S
True
S
S
S
Пока P ложно
True
P
False
int i=0;
while (i<2)
{
Console.WriteLine (“Снег”);
i++;
}
do
Блок операторов S
while ( P );
int i=0;
do
{
Console.WriteLine (“Снег”);
i++;
}
while (i<2);
34
Универсальный цикл
for (выражение P1; выражение P2; выражение P3) блок операторов S
P1 - инициализация
P2 - условие
P3 - модификация
Вычислить P1
Вычислить P2
P2
Выполнить
блок S
Вычислить P3
35
Универсальный цикл
for (выражение P1; выражение P2; выражение P3) блок операторов S
P1 - инициализация
P2 - условие
P3 - модификация
Дополнительные операторы управления
break
- принудительное завершение цикла
continue - завершение текущей итерации цикла и
переход на следующую итерацию
Вычислить P1
Вычислить P2
P2
Выполнить
блок S
Вычислить P3
36
Универсальный цикл
for (выражение P1; выражение P2; выражение P3) блок операторов S
P1 - инициализация
P2 - условие
P3 - модификация
Вычислить P1
Вычислить P2
P2
Выполнить
блок S
Вычислить P3
Дополнительные операторы управления
break
- принудительное завершение цикла
continue - завершение текущей итерации цикла и
переход на следующую итерацию
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
int s;
int n=3;
int[ ] a = new int[n];
a[0]=10; a[1]=15; a[2]=25;
s = 0;
for (int i = 0; i < a.Length; i++)
s = s + a[i];
Console.WriteLine(s);
}
}
37
Пример обработки динамического массива
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
int s;
Методы:
Add – добавить
элемент в массив
ArrayList a = new ArrayList();
a.Add(10); a.Add(15); a.Add(25);
s = 0;
for (int i = 0; i < a.Count; i++)
s = s + (int)a[i] ;
Console.WriteLine(s);
}
}
Свойство:
Count – количество
элементов в массиве
Распаковка –
преобразование
объекта Object в целое
число
38
Универсальный цикл
for (выражение P1; выражение P2; выражение P3) блок операторов S
P1 - инициализация
P2 - условие
P3 - модификация
Вычислить P1
Вычислить P2
P2
Выполнить
блок S
Вычислить P3
Дополнительные операторы управления
break
- принудительное завершение цикла
continue - завершение текущей итерации цикла и
переход на следующую итерацию
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
int s;
int n=3;
int[ ] a = new int[n];
a[0]=10; a[1]=15; a[2]=25;
s = 0;
for (int i = 0; i < a.Length; i++)
s = s + a[i];
Console.WriteLine(s);
}
}
39
Пример обработки динамического массива
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
int s;
Методы:
Add – добавить
элемент в массив
ArrayList a = new ArrayList();
a.Add(10); a.Add(15); a.Add(25);
s = 0;
for (int i = 0; i < a.Count; i++)
s = s + (int)a[i] ;
Console.WriteLine(s);
}
}
Свойство:
Count – количество
элементов в массиве
Распаковка –
преобразование
объекта Object в целое
число
40
Download