Главная Обратная связь

Дисциплины:






Основы C#. Урок 5. Логические операторы



Как и в других C-подобных языках, в C# существуют следующие логические операторы:

Оператор Описание Пример
&& Логическое И. Результат равен true, только если оба операнда равны true (x==8) && (y==5)
|| Логическое ИЛИ. Результат равен false, только если оба операнда равны false (y>8) || (y<5)
! Отрицание. Изменяет логическое значение на противоположное if(!(a==b))...

Все эти операторы возвращают результат типа bool.

Обратите внимание, что для логического равно (т. е. для ответа на вопрос "Верно ли, что что-то равно чему-то") используется знак двойного равенства (==). Знак же одинарного равенства (=) используется для присваивания. Для знака == существует парный знак != ("не равно"). Так, приведенный выше пример для оператора ! можно переписать так:

if(!(a==b))...

Отметим, что в C#, в отличии от многих других языков программирования, нельзя вместо false использовать 0, а вместо true - любое ненулевое число. Так, следующий фрагмент содержит ошибку:

int k; ... if(k) //Ошибка! ...

 

Основы C#. Урок 6. Массивы в C#

Массивы в C# несколько отличаются от других C-подобных языков. Начнем сразу с примеров. Пример первый:

... int[] k; //k - массив k=newint [3]; //Определяем массив из 3-х целых k[0]=-5; k[1]=4; k[2]=55; //Задаем элементы массива //Выводим третий элемент массива Console.WriteLine(k[2].ToString()); ...

Смысл приведенного фрагмента ясен из комментариев. Обратите внимание на некоторые особенности. Во-первых, массив определяется именно как

int[] k;

а не как один из следующих вариантов:

int k[]; //Неверно!int k[3]; //Неверно!int[3] k; //Неверно!

Во-вторых, так как массив представляет из себя ссылочный объект, то для создания массива необходима строка

k=newint [3];

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

int[] k = newint [3];

Элементы массива можно задавать сразу при объявлении. Вот пример:

int[] k = {-5, 4, 55};

Разумеется, приведенные конструкции применимы не только к типу int и не только к массиву размера 3.

В C#, как и в C/C++, нумерация элементов массива идет с нуля. Таким образом в нашем примере начальный элемент массива - это k[0], а последний - k[2]. Элемента k[3], разумеется, нет.

Теперь переходим к многомерным массивам. Вот так задается двумерный массив:

int[,] k = newint [2,3];

Обратите внимение, что пара квадратных скобок только одна. Естественно, что в нашем примере у массива 6 (=2*3) элементов (k[0,0] - первый, k[1,2] - последний).

Аналогично мы можем задавать многомерные массивы. Вот пример трехмерного массива:



int[,,] k = newint [10,10,10];

А вот так можно сразу инициализировать многомерные массивы:

int[,] k = {{2,-2},{3,-22},{0,4}};

Приведенные выше примеры многомерных массивов называются прямоугольными. Если их представить в виде таблицы (в двумерном случае), то массив будет представлять из себя прямоугольник.

Наряду с прямоугольными массивами существуют так называемые ступенчатые. Вот пример:

//Объявляем 2-мерный ступенчатый массив int[][] k = newint [2][]; //Объявляем 0-й элемент нашего ступенчатого массива //Это опять массив и в нем 3 элемента k[0]=newint[3]; //Объявляем 1-й элемент нашего ступенчатого массива //Это опять массив и в нем 4 элемента k[1]=newint[4]; k[1][3]=22; //записываем 22 в последний элемент массива ...

Обратите внимание, что у ступенчатых массивов мы задаем несколько пар квадратных скобок (столько, сколько размерность у массива). И точно так же мы что-нибудь делаем с элементами массива - записываем, читаем и т. п.

Самая важная и интересная возможность у ступенчатых массивов - это их "непрямоугольность". Так, в приведенном выше примере в первой "строке" массива k три целых числа, а во второй - четыре. Часто это оказывается очень к месту.

 





sdamzavas.net - 2019 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...