1. Основы языка C#: синтаксис, типы данных и управляющие конструкции
Основы языка C#: синтаксис, типы данных и управляющие конструкции
Добро пожаловать в курс C# с нуля! Если вы читаете эту статью, значит, вы решили освоить один из самых мощных и востребованных языков программирования в мире. C# (произносится как «си-шарп») — это язык, разработанный компанией Microsoft. Он используется повсеместно: от создания корпоративных приложений и веб-сервисов до разработки мобильных игр на движке Unity.
В этой первой статье мы не будем говорить о сложных архитектурах. Наша цель — заложить фундамент. Мы разберем, из чего состоит программа, как хранить данные и как управлять ходом выполнения кода.
Структура программы на C#
Любое путешествие в программирование начинается с классической программы «Hello, World!». Давайте посмотрим, как она выглядит на C#, и разберем каждую строчку.
На первый взгляд код может показаться громоздким, но у каждой части есть своя важная роль. C# — это объектно-ориентированный язык, поэтому здесь все организовано в строгую иерархию.
Разберем элементы по порядку:
using System; — это подключение библиотеки. System — это стандартное пространство имен, где хранятся базовые инструменты, например, работа с консолью.namespace MyFirstApp — пространство имен. Представьте, что это фамилия вашей программы. Оно нужно, чтобы имена ваших классов не конфликтовали с чужими.class Program — класс. Это контейнер для данных и методов. В C# весь код должен жить внутри классов.static void Main(string[] args) — это точка входа. Когда вы запускаете программу, компьютер ищет именно метод Main и начинает выполнение команд внутри него.Console.WriteLine("..."); — команда вывода текста на экран. Обратите внимание: в конце каждой команды в C# обязательно ставится точка с запятой ;.Переменные и типы данных
Программам нужно где-то хранить информацию: возраст пользователя, цену товара, имя персонажа. Для этого используются переменные. Переменная — это именованная область в памяти компьютера.
C# — язык со строгой типизацией. Это значит, что вы не можете положить текст в переменную, предназначенную для чисел. Вы должны заранее сказать компьютеру, какой тип данных будет храниться в коробке.
!Переменные как коробки: каждая коробка предназначена только для определенного типа содержимого.
Основные типы данных
Вот самые часто используемые типы:
* int (Integer) — целые числа. Пример: 10, -5, 2023.
* double — дробные числа (числа с плавающей точкой). Пример: 3.14, -0.5.
* string — строка (текст). Обязательно заключается в двойные кавычки. Пример: "Привет".
* char — один символ. Заключается в одинарные кавычки. Пример: 'A', '!'.
* bool (Boolean) — логический тип. Может быть только true (истина) или false (ложь).
Объявление и инициализация
Чтобы создать переменную, мы пишем тип, затем имя, и (необязательно) сразу присваиваем значение через знак равно =.
Если вы попытаетесь написать int number = "текст";, компилятор выдаст ошибку еще до запуска программы. Это защищает вас от множества глупых ошибок.
Арифметика в программировании
С числовыми переменными можно производить математические операции. Допустим, мы хотим рассчитать значение по простой формуле.
Где — результат вычисления, — входное значение переменной, и — числовые константы. В коде это будет выглядеть так:
Основные операторы:
* + (сложение)
* - (вычитание)
(умножение)
* / (деление)
* % (остаток от деления)
> Важно помнить: при делении двух целых чисел (int) результат тоже будет целым. Дробная часть просто отбрасывается. 5 / 2 вернет 2, а не 2.5. Чтобы получить дробь, хотя бы одно число должно быть double.
Ввод данных с консоли
Программа становится интересной, когда она взаимодействует с пользователем. Для чтения текста используется команда Console.ReadLine().
Однако ReadLine всегда возвращает строку (string). Если вы введете возраст «25», для программы это будет просто текст «25», который нельзя умножать или делить. Чтобы превратить строку в число, нужно использовать конвертацию.
Управляющие конструкции
Код не всегда должен выполняться линейно сверху вниз. Иногда нам нужно принимать решения или повторять действия. Для этого существуют управляющие конструкции.
Условные операторы (if, else)
Конструкция if позволяет выполнить блок кода, только если условие истинно. Это похоже на принятие решений в реальной жизни: «Если на улице дождь, я возьму зонт».
!Блок-схема работы условного оператора if-else.
Синтаксис:
Операторы сравнения:
* == (равно)
* != (не равно)
* > (больше), < (меньше)
* >= (больше или равно), <= (меньше или равно)
Обратите внимание на двойное равно == для сравнения. Одинарное = используется только для присваивания значения.
Циклы (Loops)
Циклы позволяют повторять блок кода несколько раз. Это избавляет нас от дублирования команд.
#### Цикл while
Цикл while работает до тех пор, пока условие истинно. «Пока вода в чайнике не закипела — жди».
Здесь мы использовали оператор инкремента ++, который увеличивает значение переменной на единицу.
#### Цикл for
Цикл for используется, когда мы точно знаем, сколько раз нужно повторить действие. Он компактнее, так как все настройки цикла собраны в одной строке.
Рассмотрим математическую запись суммы ряда чисел:
Где — итоговая сумма, — переменная счетчика, которая меняется от 1 до 5, а — знак суммирования. Мы складываем . В коде это реализуется так:
В скобках for три части, разделенные точкой с запятой:
int i = 1 — инициализация счетчика (выполняется один раз в начале).i <= 5 — условие продолжения (проверяется перед каждой итерацией).i++ — действие после итерации (обычно увеличение счетчика).Заключение
Сегодня мы сделали первый и самый важный шаг. Вы узнали:
* Как выглядит структура программы на C#.
* Что такое переменные и почему важны типы данных.
* Как заставить программу принимать решения с помощью if.
* Как повторять действия с помощью циклов while и for.
Этих знаний уже достаточно, чтобы писать простые текстовые квесты, калькуляторы или программы для решения математических задач. В следующей статье мы перейдем к сердцу C# — Объектно-Ориентированному Программированию (ООП). Мы узнаем, как создавать свои собственные типы данных и моделировать реальные объекты в коде.
Практикуйтесь, экспериментируйте с кодом и не бойтесь ошибок — это лучший способ учиться!