Арифметические операции

Компьютеры почти всегда что-то считают. Собственно само слово computer означает вычислитель. В этой области даже самый слабенький процессор намного превосходит человеческий мозг.

static void Main(string[] args)

{

int a = 5;

int b = 2;

System.Console.WriteLine("a = " + a + ", b = " + b);

 

int result = a + b;

System.Console.WriteLine("Сложение, a + b = " + result);

 

result = a * b;

System.Console.WriteLine("Умножение, a * b = " + result);

 

result = a / b;

System.Console.WriteLine("Деление, a / b = " + result + " a и b - целые числа, деление только нацело");

 

double resultDouble = a / b;

System.Console.WriteLine("Деление, a / b = " + resultDouble + " все равно что-то не так...");

 

double aDouble = 5;

resultDouble = aDouble / b;

System.Console.WriteLine("Деление, a / b = " + resultDouble);

 

System.Console.ReadLine();

}

Почему произошло столь странное недоразумение с дробным числом во второй раз? Все дело в том, что внутри одной строки мы выполнили сразу несколько операций. А в каком порядке они выполняются? В порядке приоритета. И у оператора присваивания =, который записывает данные в переменную, этот приоритет один из самых низких

Сначала выполнилось деление двух целочисленных переменных a и b и только после этого целый результат деления записался в дробную переменную doubleResult.

Таблица 1 Приоритеты операций

Приоритет Категория Операции Порядок
Первичные (expr); x.y; f(x); a[x]; x++; x new; sizeof(t); typeof(t); checked(expr); unchecked(expr) Слева направо
Унарные + - ! ~ ++x --x (T)x См. выше
Мультипликативные (Умножение) - * / % См. выше
Аддитивные (Сложение) + - См. выше
Сдвиг << >> См. выше
Отношения, проверка типов < > <= >= is as См. выше
Эквивалентность == != См. выше
Логическое И & См. выше
Логическое исключающее ИЛИ (XOR) ^ См. выше
Логическое ИЛИ (OR) | См. выше
Условное И && См. выше
Условное ИЛИ || См. выше
Условное выражение ? : Справа налево
Присваивание = *= /= %= += -= <<= >>= &= ^= |= См. выше

Небольшое отступление:
В дальнейших примерах кода подразумевается, что вы самостоятельно вставите их внутрь

static void Main(string[] args)
{

 

 
}