Управление и логика

На данный момент наша программа не отличается умом - Скайнет из нее не получится, уничтожение человечеству не грозит. Мы просто выполняем команды по очереди, одну за другой, а хотелось бы принимать решения в зависимости от внешних условий - например "если есть возможность, уничтожить всех людей, иначе работать над созданием такой возможности". Делается это с помощью специальной конструкции если-иначе, или, на родном для C# английском if-else и специальных операторов сравнения:

  • < - величина слева меньше
  • > - величина слева больше
  • <= и >= - меньше либо равно и больше либо равно
  • == - просто равно, обратите внимание, что равенство очень похоже на оператор присваивания, который записывает значение в переменную = - не путайте их, равенство - это двойное "равно"
  • != - не равно
  • и другие

Компьютерная логика проста - высказывание или результат сравнения может быть либо истиной либо ложью, либо true либо flase, либо уничтожать человечество либо нет. Третьего компьютеру не дано. Для хранения таких данных существует специальный тип данных - логический -bool - который может принимать только два значения (догадываетесь какие?). Если вы хотите чего-то посложней и похардкорней - то все вместе это булева алгебра, изучайте и просвещайтесь.

Нам важно понять, что любая операция сравнения, на пример 2 < 4 на самом деле вычисляет логическое значение типа bool, которое может принимать только два значения. И уже им будет руководствоваться компьютер, выполняя нашу программ.

bool boolVariable = true;

if (boolVariable)

{

System.Console.WriteLine("boolVariable = true; --- Истина!");

}

else

{

System.Console.WriteLine("boolVariable = false; Ложь!");

}

System.Console.WriteLine();

boolVariable = false;

if (boolVariable)

{

System.Console.WriteLine("boolVariable = false; Истина!");

}

else

{

System.Console.WriteLine("boolVariable = false; Ложь!");

}

boolVariable = 2 < 4;

if (boolVariable)

{

System.Console.WriteLine("boolVariable = 2 < 4; Истина!");

}

else

{

System.Console.WriteLine("boolVariable = 2 < 4; Ложь!");

}

if (10!= 100)

{

System.Console.WriteLine("10!= 100! Ваш капитан очевидность!");

}

System.Console.WriteLine();

System.Console.ReadLine();

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

- логическое И - оператор && - возращает истину только в том случае, если и справа и слева от него будет истина, во всех остальных случаях будет ложь

- логическое ИЛИ - оператор || - возвращает истину, если хоть одна из двух величин истинна. Ложь он вернет только если обе логические величины ложны

Ну например - если есть армия И есть энергия - напасть на человечество. При использовании оператора && нападения не произойдет если нет энергии или нет армии. А вот при использовании || глупая железяка попытается напасть даже если у нее нету армии, или эта армия лежит мертвой грудой без топлива и электричества.

bool boolVar1 = true;

bool boolVar2 = true;

if (boolVar1 && boolVar2)

{

System.Console.WriteLine("Вернуло true логическое И для true и true");

}

if (boolVar1 || boolVar2)

{

System.Console.WriteLine("Вернуло true логическое ИЛИ для true и true");

}

boolVar1 = true;

boolVar2 = false;

if (boolVar1 && boolVar2)

{

System.Console.WriteLine("Вернуло true логическое И для true и false");

}

if (boolVar1 || boolVar2)

{

System.Console.WriteLine("Вернуло true логическое ИЛИ для true и false");

}

System.Console.WriteLine();

System.Console.ReadLine();


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: