Перший операнд - вираз, для якого існує неявне перетворення до логічного типу. Якщо результат обчислення першого операнда рівний true, то результатом умовної операції буде значення другого операнда, інакше - третього операнда. Обчислюється завжди або другий операнд, або третій. Приклад застосування умовної операції представлений в лістингу 3.8.
Лістинг 3.8. Умовна операція
using System;
namespace Consoleapplicationl
{
class Classl
{
static void Main( )
{
int a = 11, b = 4;
int max = b > a ? b : a;
Console.WriteLine( max ); // Результат 11
}
}
}
Операції привласнення
Операції привласнення ( =, + =, -=, *= і т. д.) задають нове значення змінної. Ці операції можуть використовуватися в програмі як закінчені оператори.
Формат операції простого привласнення (=):
Змінна = Вираз
Механізм виконання операції привласнення такий: обчислюється вираз і його результат заноситься в пам'ять за адресою, яка визначається ім'ям змінної, операцією, що знаходиться зліва від знаку. Те, що раніше зберігалося в цій області пам'яті, природно, втрачається. Схематично це корисно уявити собі так:
Змінна ß Вираз
Приклади операторів привласнення:
а = b + с / 2;
b = а;
а = b;
х = 1;
х = х + 0.5;
Для правого операнда операції привласнення повинно існувати неявне перетворення до типу лівого операнда. Наприклад, вираз цілого типу можна привласнити дійсній змінній, тому що цілі числа є підмножиною дійсних, і інформація при такому привласненні не втрачається:
дійсна змінна = цілий_вираз;
Результатом операції привласнення є значення, записане в лівий операнд. Тип результату збігається з типом лівого операнда.
У складних операціях привласнення ( + =, * =, /= і т. п.) при обчисленні виразу, що стоїть в правій частині, використовується значення з лівої частини. Наприклад, при складанні з привласненням до другого операнда додається перший, і результат записується в перший операнд, тобто вираз а += b є компактнішим записом виразу а = а + b.
Результатом операції складного привласнення є значення, яке записане в лівий операнд.
Операції привласнення правоасоціативні, тобто виконуються справа наліво, на відміну від більшості інших операцій (а = b = с означає а = (b = с) ).