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