Компьютеры почти всегда что-то считают. Собственно само слово 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) |
| { |
| } |






