Новые операции

   
На этом шаге мы рассмотрим операции отношения, логические и унарные операции.

   
Поговорим об операциях, с которыми еще не встречались в рассмотренных ранее примерах.

  • Операции отношения:
    • == (равно);
    • != (не равно);
    • >= (больше или равно);
    • > (больше);
    • <= (меньше или равно);
    • < (меньше).

       
    Если две переменные сравниваются с помощью операций отношения, то результат сравнения всегда бывает булева типа, т. е. либо ложен, либо истинен. Поэтому мы можем, например, писать:

      int  i = 34;
      int  j = i * 25; 
      bool a = i > j;
    

       
    Операции отношения бывают весьма полезны. Допустим, в вашей программе цикл while (выражение) {...} работает не так, как вам бы того хотелось. Вы никак не можете разобраться,
    в чем дело, поскольку выражение в конструкции while настолько громоздко, что вы не можете его вычислить в момент отладки программы. Тогда это выражение можно
    присвоить некоторой (объявляемой вами) булевой переменной. Теперь вы сможете в режиме отладчика увидеть значение этого выражения и принять соответствующие меры.

       
    Надо учитывать, что операции отношения по очередности (приоритету) их выполнения младше арифметических операций. Если вы напишете if (i < j - i), то при вычислении выражения в
    условной конструкции сначала будет вычислено j-i, а затем результат будет сравниваться с содержимым переменной i.

  • Логические операции: && (и) и || (или). Тип выражения, в котором участвуют эти операции, будет булевым, как и для операций отношения.   
    Выражение a && b будет истинным только тогда, когда истинны оба операнда (операнды имеют булевы значения).

       
    Выражение a || b будет истинным только тогда, когда хоть один из операндов истинен.

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

  • Унарная (т. е. воздействующая только на один операнд) операция ! (не). Это логическая операция отрицания. Она преобразует операнд, значение
    которого не равно нулю или истине, в ноль, а нулевой или ложный - в единицу. Результат этой операции представляет собой булево значение.
    Иногда ее используют в записи вида: if (!а) вместо if (a==0).

       
    Действительно, по определению условия if выражение в его скобках всегда должно быть истинным, поэтому получается, что при a=0 выражение !а будет равно 1 (истина).
    Тогда !!а=а=0, поскольку мы применили к обеим частям равенства операцию "не", а повтор этой операции возвращает число в исходное состояние.

       
    К унарным относятся также операции "одиночный плюс" и "одиночный минус", явно устанавливающие знаки чисел или значений переменных. Например:

      int x = -1;
      float z = 12.5; 
      float у = -z;
    

   
На следующем шаге мы рассмотрим преобразование типов данных.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий