Прежде всего обратим внимание на то, что переменнаяsomeConditionтипаboolинициализируется значениемfalse.Далее проанализируем каждый операторif.Как следует из комментариев к данной программе, в первом оператореi fпеременнаяiинкрементируется, несмотря на то что значение переменнойsomeConditionравноfalse.Когда применяется логический оператор &, как это имеет место в первом оператореi f, выражение в правой части этого оператора вычисляется независимо от значения выражения в его левой части. А во втором оператореi fприменяется укороченный логический оператор. В этом случае значение переменнойiне инкрементируется, поскольку левый операнд (переменнаяsomeCondition)имеет значениеfalse,следовательно, выражение в правой части данного оператора пропускается. Из этого следует вывод: если в коде предполагается вычисление правого операнда логической операции И либо ИЛИ, то необходимо пользоваться неукороченными формами логических операций, доступных в С#.
И последнее замечание: укороченный оператор И называется также
Оператор присваивания
Здесь
У оператора присваивания имеется одна интересная особенность, о которой вам будет полезно знать: он позволяет создавать цепочку операций присваивания. Рассмотрим, например, следующий фрагмент кода.
int х, у, z;
х = у = z = 100; // присвоить значение 100 переменным х, у и z
В приведенном выше фрагменте кода одно и то же значение 100 задается для переменных х,уи z с помощью единственного оператора присваивания. Это значение присваивается сначала переменной z, затем переменнойуи, наконец, переменной х. Такой способ присваивания "по цепочке" удобен для задания общего значения целой группе переменных.
Составные операторы присваивания
В C# предусмотрены специальные составные операторы присваивания, упрощающие программирование некоторых операций присваивания. Обратимся сначала к простому примеру. Приведенный ниже оператор присваивания
X = X + 10;
можно переписать, используя следующий составной оператор присваивания.
X += 10;
Пара операторов += указывает компилятору на то, что переменной х должно быть присвоено ее первоначальное значение, увеличенное на 10.
Рассмотрим еще один пример. Оператор
х = х - 100;