'

Операторы

Понравилась презентация – покажи это...





Слайд 0

1 A + B Операнд 1 Операнд 2 Оператор Что такое выражение (expression) ? Что такое инструкция (statement) ? Операторы int max = (a > b) ? a : b; http://msdn.microsoft.com/ru-ru/library/ms173145.aspx


Слайд 1

2 Присваивания: = Математические (+, %, >>, …) Логические (==, !=, >=, …) Вызов метода: () Индексация: [] Условный: if, switch Цикла: for, while, do-while, foreach Перехода: goto, break, continue, return Операторы


Слайд 2

Условные операторы int x = 1; … if (x) // error { …. } 3 int k = Int32.Parse(Console.ReadLine()); if (k % 2 == 0) { Console.WriteLine("Четное число"); } else { Console.WriteLine("Нечетное число"); } Console.ReadLine();


Слайд 3

4 int x = 0; if (x = 1) { } // Что произойдет? string str = "_Текст"; if (str.Length > 0 && str[0] == '_') { }


Слайд 4

Switch: Целые string enum char bool 5 int k = Int32.Parse(Console.ReadLine()); switch (k) { case 1: case 2: Console.WriteLine("Неудовлетворительно"); break; case 3: Console.WriteLine("Удовлетворительно"); break; case 4: Console.WriteLine("Хорошо"); break; case 5: Console.WriteLine("Отлично"); break; default: Console.WriteLine("Ошибка"); break; }


Слайд 5

6 string str = null; ... string result = (str != null ? str : "пусто"); или string result = str ?? "пусто"; int max = (a > b ? a : b); Тернерный оператор Сокращенная форма для проверки на null:


Слайд 6

for uint sum = 0; for (int n=1; n<=100; n++) { sum += n; } 7 Что такое заменители goto? Для чего нужен разделитель «запятая»?


Слайд 7

foreach string[] drives = Environment.GetLogicalDrives(); foreach (string s in drives) { Console.WriteLine(s); } int[] array = new int[] { 1, 1, 2, 3, 5, 8, 13 }; int sum = 0; foreach (var val in array) { sum += val; }


Слайд 8

9 while Random rnd = new Random(); while (true) { int r = rnd.Next(1, 10); Console.WriteLine(r); if (r == 7) break; } while (reader.Read()) { ... }


Слайд 9

do-while 10 string password = "qwerty"; do { Console.Write("Введите пароль: "); string buf = Console.ReadLine(); } while (buf != password);


Слайд 10

11 Оператор () int[] monthsLengths = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int month = 2; int year = 2012; int daysCount = monthsLengths[month] + (month == 2 && year % 4 == 0) ? 1 : 0; http://msdn.microsoft.com/ru-ru/library/6a71f45d.aspx


Слайд 11

12 A = B = C = D // ? A – B – C * D + F * G + H // ? Ассоциативность операторов int a, b, c; c = 1; // The following two lines are equivalent. a = b = c; a = (b = c); // The following line, which forces left // associativity, causes an error. //(a = b) = c;


Слайд 12

13 string text = "Это текст"; if (text.Length == 0) Console.WriteLine("Пусто"); else { string[] words = text.Split(' '); foreach (var word in words) { Console.WriteLine(word); } } Какая форма записи более понятна? string text = "Это текст"; if (text.Length == 0) { Console.WriteLine("Пусто"); } else { string[] words = text.Split(' '); foreach (var word in words) { Console.WriteLine(word); } }


Слайд 13

14 for (int n = 0; ; n++) { if (Console.ReadKey().Key == ConsoleKey.Escape) break; } Console.WriteLine("Вы ввели: {0} символов", n); // Ошибка! int n = 0; for (; ; n++) { if (Console.ReadKey().Key == ConsoleKey.Escape) break; } Console.WriteLine("Вы ввели: {0} символов", n);


Слайд 14

Функции с переменным числом аргументов private static int Sum(int a, int b) { return a + b; } static void Main() { int sum = Sum(1, 2); } 15 Функции


Слайд 15

int Sum(params int [] array) { int sum = 0; foreach (int n in array) { sum += n; } return sum; } int s1 = Sum(1, 2, 3); int s2 = Sum(1, 2, 3, 4, 5); 16 -возможно любое количество параметров -нет ограничений на тип параметров -params должен быть последним в списке аргументов, и в единственном экземпляре


Слайд 16

int Min(int a, int b) { return (a < b ? a : b); } string Min(string a, string b) { return (a.Length < b.Length ? a : b); } float Min(float[] p) { … } Перегрузка функций (functions overload) 17 Min(1, 5); Min("abc", "ab") Min(new float[]{0.1f, 0.2f, 0.3f});


Слайд 17

18 bool IsLeapYear(DateTime dateTime) { return IsLeapYear(dateTime.Year); } bool IsLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0); }


Слайд 18

Перегрузка функций, содержащих params void func (params int [] p); void func (int x, int y); void func (int x, params int [] p); void func (int x, int y); func(3, 5); func(10, 20, 30); func(1, 2); 19


Слайд 19

20


Слайд 20

21 Передача value-type аргументов в функцию long x = 5; long y = x; y = 1; x - ? private static void SetZero(float val) { val = 0f; } static void Main() { float f = 10f; SetZero(f); // f - ? }


Слайд 21

22 Передача ref-type аргументов в функцию int[] arrayA = { 1, 2, 3 }; int[] arrayB = arrayA; arrayB[0] = 5; foreach (int i in arrayA) Console.WriteLine(i); private static void SetZero(float[] val) { for (int i = 0; i < val.Length; i++) val[i] = 0f; } static void Main() { float[] array = { 1f, 2f, 3f }; SetZero(array); foreach (int i in array) Console.WriteLine(i); }


Слайд 22

Модификатор ref -позволяет передавать в функцию значение по ссылке 23 private static void Swap (ref int a, ref int b) { int tmp = a; a = b; b = tmp; } int x = 1, y = 2; Swap(ref x, ref y);


Слайд 23

24 Передаче по ссылке параметра reference-type private static void SetZero(int[] p) { p[0] = 10; p = new int[] { 1, 2, 3 }; } ... int[] array = new int[5]; SetZero(array); foreach (int i in array) { Console.Write("{0} ", i); }


Слайд 24

25 private static void SetZero(ref int[] p) { p[0] = 10; p = new int[] { 1, 2, 3 }; } ... int[] array = new int[5]; SetZero(ref array); foreach (int i in array) { Console.Write("{0} ", i); }


Слайд 25

Модификатор out -предназначен для получения значений из метода (по ссылке) 26 void MinMax(int a, int b, out int min, out int max) { min = (a < b) ? a : b; max = (a > b) ? a : b; } int minValue; int maxValue; MinMax(100, 10, out minValue, out maxValue);


Слайд 26

27 Значения параметров функций по умолчанию public void Show(string text, string caption, bool sound) { //... } ... Show("Привет!", "", false);


Слайд 27

28 void Show(string text, string caption = "", bool sound = false) { //... } ... Show("Привет!"); Show("Привет!", "Сообщение"); Show("Привет!", "Сообщение", true);


Слайд 28

29 Именованные параметры class Circle { public void Set(int x, int y, int r) { } } Circle circle = new Circle(); circle.Set(x: 0, y: 0, r: 10); // circle.Set(x: 0, r: 10, y: 0);


Слайд 29

30 class Circle { public void Set(int x=0, int y=0, int r=1) { } } Circle circle = new Circle(); circle.Set(y: 0);


×

HTML:





Ссылка: