C# - Операторы: Врата в магию программирования

Привет, будущие кодовые маги! Сегодня мы окунемся в奇妙ный мир операторов C#. Не беспокойтесь, если вы еще ни разу не писали ни строчки кода – к концу этого учебника вы будете жонглировать операторами, как профи!

C# - Operators

Что такое операторы?

Прежде чем мы углубимся, давайте поймем, что такое операторы. Представьте операторы как магические палочки программирования. Они позволяют нам выполнять действия с нашими данными, точно так же, как шеф-повар использует разные инструменты, чтобы приготовить вкусное блюдо. В C# у нас есть различные типы операторов, которые помогают нам манипулировать нашими ингредиентами (данными) для создания потрясающих рецептов (программ)!

Арифметические операторы: Основы магии математики

Давайте начнем с самых простых операторов – арифметических операторов. Это как базовые заклинания, которые каждый маг изучает в первую очередь.

Сложение (+)

int apples = 5;
int oranges = 3;
int totalFruit = apples + oranges;
Console.WriteLine($"Total fruit: {totalFruit}");

Результат: Total fruit: 8

Здесь мы складываем яблоки и апельсины (что говорят, что делать не следует, но в C# мы бунтари!). Оператор + складывает значения apples и oranges, сохраняя результат в totalFruit.

Вычитание (-)

int cookies = 10;
int eaten = 3;
int remaining = cookies - eaten;
Console.WriteLine($"Cookies left: {remaining}");

Результат: Cookies left: 7

Оператор - вычитает eaten из cookies. Это как магия –cookies исчезают!

Умножение (*)

int students = 5;
int pencilsPerStudent = 2;
int totalPencils = students * pencilsPerStudent;
Console.WriteLine($"Total pencils needed: {totalPencils}");

Результат: Total pencils needed: 10

Оператор * умножает students на pencilsPerStudent. Это идеально, когда вам нужно быстро посчитать, сколько карандашей купить для вашего класса!

Деление (/)

int pizza = 8;
int friends = 3;
int slicesPerFriend = pizza / friends;
Console.WriteLine($"Slices per friend: {slicesPerFriend}");

Результат: Slices per friend: 2

Оператор / делит pizza на friends. Обратите внимание, что мы получаем 2, а не 2.67. Потому что при делении целых чисел, C# отбрасывает десятичную часть. Это как если бы компьютер был скуп на кусочки пиццы!

Остаток (%)

int pizza = 8;
int friends = 3;
int leftoverSlices = pizza % friends;
Console.WriteLine($"Leftover slices: {leftoverSlices}");

Результат: Leftover slices: 2

Оператор % дает нам остаток после деления. Это идеально, чтобы понять, сколько кусочков пиццы вы получите после того, как поделили их с друзьями!

Реляционные операторы: Мастера сравнения

Теперь перейдем к реляционным операторам. Эти операторы как судьи на кулинарном шоу – они сравнивают вещи и дают нам да или нет.

Равно (=)

int myAge = 25;
int yourAge = 25;
bool sameAge = (myAge == yourAge);
Console.WriteLine($"Are we the same age? {sameAge}");

Результат: Are we the same age? True

Оператор == проверяет, равны ли два значения. Это как спросить: "Эти две вещи Exactly такие же?"

Не равно (!=)

string myFavoriteColor = "Blue";
string yourFavoriteColor = "Red";
bool differentFavorites = (myFavoriteColor != yourFavoriteColor);
Console.WriteLine($"Do we have different favorite colors? {differentFavorites}");

Результат: Do we have different favorite colors? True

Оператор != проверяет, не равны ли два значения. Это как спросить: "Эти две вещи разные?"

Больше (> и <) и Меньше (> и <)

int myScore = 85;
int passingScore = 70;
bool passed = (myScore > passingScore);
Console.WriteLine($"Did I pass? {passed}");

Результат: Did I pass? True

Оператор > проверяет, больше ли левое значение, чем правое. Точно так же < проверяет, меньше ли левое значение, чем правое.

Больше или равно (>=) и Меньше или равно (<=)

int myHeight = 180;
int doorHeight = 180;
bool canIPass = (myHeight <= doorHeight);
Console.WriteLine($"Can I pass through the door? {canIPass}");

Результат: Can I pass through the door? True

Эти операторы проверяют, больше ли или равно (или меньше или равно) одно значение другому.

Логические операторы: Мастера решений

Логические операторы как мудрые старики нашего programming village. Они помогают нам принимать сложные решения, комбинируя разные условия.

AND (&&)

bool hasMoney = true;
bool isHungry = true;
bool willBuyFood = hasMoney && isHungry;
Console.WriteLine($"Will I buy food? {willBuyFood}");

Результат: Will I buy food? True

Оператор && возвращает true только если оба условия истинны. Это как сказать: "Я куплю еду, только если у меня есть деньги И я голоден."

OR (||)

bool isRaining = false;
bool isCold = true;
bool willStayInside = isRaining || isCold;
Console.WriteLine($"Will I stay inside? {willStayInside}");

Результат: Will I stay inside? True

Оператор || возвращает true, если хотя бы одно условие истинно. Это как сказать: "Я останусь дома, если идет дождь ИЛИ если холодно."

NOT (!)

bool isSunny = true;
bool isNotSunny = !isSunny;
Console.WriteLine($"Is it not sunny? {isNotSunny}");

Результат: Is it not sunny? False

Оператор ! переворачивает布尔ское значение. Это как сказать: "Если это солнечно, то это не не солнечно!"

Битовые операторы: Двоичные друзья

Битовые операторы работают с отдельными битами чисел. Они как微观 шеф-повара программного мира, работающие на самом мельчайшем уровне наших данных.

Битовый AND (&)

int a = 5;  // 101 в двоичной системе
int b = 3;  // 011 в двоичной системе
int result = a & b;
Console.WriteLine($"Result of 5 & 3: {result}");

Результат: Result of 5 & 3: 1

Оператор & выполняет операцию AND на каждой паре битов. Это как спросить: "Оба эти бита равны 1?"

Битовый OR (|)

int a = 5;  // 101 в двоичной системе
int b = 3;  // 011 в двоичной системе
int result = a | b;
Console.WriteLine($"Result of 5 | 3: {result}");

Результат: Result of 5 | 3: 7

Оператор | выполняет операцию OR на каждой паре битов. Это как спросить: "Хотя бы один из этих битов равен 1?"

Операторы присваивания: Перевозчики ценностей

Операторы присваивания как movers программного мира. Они помогают нам поместить значения в переменные.

Простое присваивание (=)

int x = 10;
Console.WriteLine($"x is now: {x}");

Результат: x is now: 10

Оператор = просто присваивает значение переменной.

Сложное присваивание (+=, -=, *=, /=)

int score = 100;
score += 50;  // Точно так же: score = score + 50
Console.WriteLine($"New score: {score}");

Результат: New score: 150

Сложные операторы присваивания комбинируют арифметическую операцию с присваиванием. Это как сокращение в программировании.

Разнообразные операторы: Специальные

Эти операторы как уникальные инструменты на кухне шеф-повара – они имеют специфические, важные задачи.

Условный оператор (?:)

int age = 20;
string status = (age >= 18) ? "Adult" : "Minor";
Console.WriteLine($"Status: {status}");

Результат: Status: Adult

Условный оператор – это краткая форма оператора if-else. Это как задать вопрос и предоставить два возможных ответа.

Приоритетность операторов в C

Как и в математике, C# следует определенному порядку при вычислении выражений с несколькими операторами. Вот упрощенная таблица приоритетности операторов:

Приоритет Категория операторов Операторы
Highest Скобки ()
Арифметические *, /, %
Арифметические +, -
Реляционные <, >, <=, >=
Равенство ==, !=
Логическое AND &&
Логическое OR ||
Lowest Присваивание =, +=, -=

Помните, если у вас есть сомнения, используйте скобки, чтобы сделать свои намерения ясными!

И вот оно, мои年轻的 кодовые подмастерья! Вы только что были представлены магическому миру операторов C#. Помните, что практика делает perfect, так что не бойтесь экспериментировать с этими операторами в своем коде. Before you know it, вы будете casts заклинания... то есть, писать программы, как настоящий кодовый маг!

Счастливого кодирования и пусть операторы будут с вами!

Credits: Image by storyset