• Добро пожаловать на сайт - Forumteam.digital !

    Что бы просматривать темы форума необходимо зарегестрироваться или войти в свой аккаунт.

    Группа в телеграме (подпишитесь, что бы не потерять нас) - ForumTeam Chat [Подписатся]
    Связь с администратором - @ftmadmin

6. Изучаем выражения и операторы.

Redman

<FORUMTEAM>
Команда форума
Регистрация
13.11.17
Сообщения
13.340
Реакции
8.377
Баллы
1.200
FTC
208¢
Выражения и операторы.
C# - это язык, который основывается на семействе "C"-подобных языков (С, C++, Java) поэтому многие его механизмы работают по схожему принципу, например, операторы. В С# существуют четыре основных класса операторов: арифметические, логические, операторы сравнения, побитовые, а также несколько дополнительных, которые используются для ряда специальных ситуаций.

Арифметические операторы
45754028c772.jpg


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

Код:
using System;[/B]
[B]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();
   }
}

Операторы сравнения
85ff1b3e9c14.jpg


Логические операторы
2fb0f512ee0d.jpg


Результатом выполнения операторов сравнения и логических операторов являются значения типа bool(true/false).Например:
Код:
using System;[/B]
[B]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;[/B]
[B]        if(a){ // Так нельзя в C#, а в С++ можно
            Console.WriteLine("Ошибка !!!");
        }

И Даже любимая логическая ошибка программистов на C++ для С# превратится в ошибку на этапе компиляции, по причине, указанной выше.
Код:
int a = 7;[/B]
[B]   if(a=8){ // В этой строке ошибка на этапе компиляции
      Console.WriteLine("Ошибка !!!");
   }
Данные особенности работы оператора условия будут подробно рассмотрены в следующем уроке.

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

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


Они выполняют те же операции, что и их булевы логические эквиваленты. Отличие состоит в том, что побитовые операторы работают с операндами на уровне битов, впрочем это информация не должна являться для вас новостью, так как вы уже сталкивались с ними в 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();
   }
}

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