Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Выражения и операторы.

C# - это язык, который основывается на семействе "C"-подобных языков (С, C++, Java) поэтому многие его механизмы работают по схожему принципу, например, операторы. В С# существуют четыре основных класса операторов: арифметические, логические, операторы сравнения, побитовые, а также несколько дополнительных, которые используются для ряда специальных ситуаций.

Арифметические операторы

ОператорЗначение
+Сложение
-Вычитание
*Умножение
/Деление
%Остаток от деления
++Инкремент
--Декремент
Все перечисленные выше операторы, кроме % работают точно так же как в C/C++. В C# оператор деления по модулю может применяться как к целочисленным данным, так и к значениям с плавающей точкой. В С/С++ этого делать нельзя было.

using System;
class Sample
{
   public static void Main() 
   {
      try{
          int a=5,b=2;
          double c = 19.67, d=3;
          Console.WriteLine("Результат {0}%{1}={2}",a,b,a%b);
          Console.WriteLine("Результат {0}%{1}={2}",c,d,c%d);
         }
      catch(Exception ex){
          Console.WriteLine(ex.Message);
         }
			
		
      Console.Read();
   }
}

Операторы сравнения

ОператорЗначение
==Равно
!=Не равно
>Больше чем
<Меньше чем
>=Больше или равно
<=Меньше или равно

Логические операторы

ОператорЗначение
&И
|Или
^Исключающее или
&&И (сокращенная схема)
||Или (сокращенная схема)
!Не

Результатом выполнения операторов сравнения и логических операторов являются значения типа bool(true/false).Например:

using System;
class Sample
{
   public static void Main() 
   {
      try{
          int a=2,b=3;
          if((a==2)&&(b==3)){
             Console.WriteLine("Это видно на экране 1 !!!");
          }
	  if(a>31){
             Console.WriteLine("Это не видно на экране 2 !!!");
          }
          bool b1=false,b2=false;
          if(b1^b2){
             Console.WriteLine("Это не видно на экране 3 !!!");
          }
          b1=true;
          b2=false;
          if(b1^b2){
            Console.WriteLine("Это видно на экране 4 !!!");
          }
			
        }
        catch(Exception ex){
           Console.WriteLine(ex.Message);
        }
        Console.Read();
   }
}

Пример показанный ниже это ошибка на этапе компиляции, так как в С# невозможно неявное преобразование от int к bool.

		int a = 7;
		if(a){ // Так нельзя в C#, а в С++ можно
			Console.WriteLine("Ошибка !!!");
		}

И Даже любимая логическая ошибка программистов на C++ для С# превратится в ошибку на этапе компиляции, по причине, указанной выше.

   int a = 7;
   if(a=8){ // В этой строке ошибка на этапе компиляции
      Console.WriteLine("Ошибка !!!");
   }

Данные особенности работы оператора условия будут подробно рассмотрены в следующем уроке.

Побитовые операторы

Как и в C/C++ они работают непосредственно с конкретными битами своих операндов. Операндами побитовых операторов могут быть только целочисленные значения.

ОператорЗначение
&Побитовое И
|Побитовое Или
^Побитовое Исключающее Или
~Побитовое Отрицание
>>Побитовый сдвиг вправо
<<Побитовый сдвиг влево

Они выполняют те же операции, что и их булевы логические эквиваленты. Отличие состоит в том, что побитовые операторы работают с операндами на уровне битов, впрочем это информация не должна являться для вас новостью, так как вы уже сталкивались с ними в C/С++. Давайте рассмотрим пример их использования:

using System;
class Sample
{
   public static void Main() 
   {
      try{
          int a = Convert.ToInt32(Console.ReadLine());		
          // Проверка на четность
          if((a&1)==1)
             Console.WriteLine("Нечетное значение");
          else
             Console.WriteLine("Четное значение");
          int b = 2,c=5;
          int f = b|c;
          // На Экране 7
          Console.WriteLine(f); 
          int kvadrat = b<<1;
          int kub = b<<2;
          Console.WriteLine("Квадрат "+b+" = "+kvadrat); 
          Console.WriteLine("Куб "+b+" = "+kub); 
         }
         catch(Exception ex){
            Console.WriteLine(ex.Message);
         }
         Console.Read();
   }
}

Операторы, переменные и литералы вместе образовывают выражения. Как и в С++ для улучшения читабельности программы выражения могут содержать символы табуляции и пробелы. Кроме того в выражениях можно использовать круглые скобки для повышения приоритета операторов внутри них.


 
 
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru