JavaRush /Курси /C++ SELF /Типи змінних у C++: int, double і std::string

Типи змінних у C++: int, double і std::string

C++ SELF
Рівень 1 , Лекція 4
Відкрита

1. Оголошення змінних

Ще раз згадаємо, як оголошувати змінні. Щоб оголосити змінну, потрібно написати таку конструкцію: тип імʼя;.

Приклади:

Команда Пояснення
std::string s;
Створюється змінна s типу std::string. Вона може зберігати текст.
int x;
Створюється змінна x типу int. Вона може зберігати цілі числа.
int a, b, c; int d;
Створюються змінні a, b, c, d типу int. Усі ці змінні можуть зберігати цілі числа.
Важливо!

Не можна створити дві змінні з однаковими іменами в одному блоці коду. А от у різних блоках — можна. Це як коробки, що стоять у різних будинках. Детальніше про блоки коду — у наступних лекціях.

Є й обмеження щодо імені змінної. З одного боку, воно може бути довільним, а з іншого — не може містити пробілів, символів +, - тощо. Найкраще використовувати в іменах змінних лише латинські літери та цифри.

Нагадаємо ще раз: у мові C++ має значення, які саме літери ви пишете — великі чи малі. int a — це не те саме, що й int A.

До речі, у C++ можна одночасно оголошувати змінну й присвоювати їй значення. Це заощаджує час і місце:

Компактний код Довгий код, еквівалентний коду зліва
int a = 5;
int a; a = 5;
int b = 6;
int b; b = 6;
int c = 7;
int c; c = 7;
int d = c + 1;
int d; d = c + 1;
std::string s = "I'm Amigo";
std::string s; s = "I'm Amigo";

Так набагато компактніше й зрозуміліше.

Оскільки з оголошенням змінних ми вже розібралися, познайомімося з двома найуживанішими типами в мові C++. Це int — цілі числа, і std::string — текстові рядки.

2. Тип int

У змінній типу int можна зберігати цілі числа: 5, -10, 100500. Із типом int також можна виконувати різні арифметичні операції: додавання, віднімання, множення, ділення та інші. Приклади:

int main() {
    {
        int x = 1;                  // x дорівнюватиме 1
        int y = x * 2;              // y дорівнюватиме 2
        int z = 5 * y * y + 2 * y + 3; // z дорівнюватиме 20+4+3, тобто 27
    }

    {
        int a = 5;                  // a дорівнюватиме 5
        int b = 1;                  // b дорівнюватиме 1
        int c = (a - b) * (a + b);  // c дорівнюватиме 4*6, тобто 24
    }

    {
        int a = 64;                 // a дорівнюватиме 64
        int b = a / 8;              // b дорівнюватиме 8
        int c = b / 4;              // c дорівнюватиме 2
        int d = c * 3;              // d дорівнюватиме 6
    }
}

Якщо ви в школі не прогулювали математику, тут усе має бути зрозуміло 🧐

А якщо все ж прогулювали, ось список доступних операцій:

  • + — додавання
  • - — віднімання
  • * — множення
  • / — ділення
  • % — остача від ділення

3. Тип double

Тип int зберігає лише цілі числа. А що, якщо нам потрібні числа з дробовою частиною? Для цього існує тип double.

Він зберігає дійсні числа:

double x = 3.14;
double y = -0.5;
double z = 2.0;

Особливість double

Числа типу double зберігаються в памʼяті приблизно. Іноді через це можуть зʼявлятися несподівані ефекти:

double x = 0.1 + 0.2;  // 0.300000004

Ви можете очікувати точне значення 0.3, але всередині зберігається лише наближене. Це нормально: саме так у компʼютері подаються дробові числа.

4. Тип std::string

Тип std::string дає змогу зберігати текстові рядки. Щоб задати рядок у C++, текст треба взяти в подвійні лапки.

Код Пояснення
std::string s = "Amigo";
s міститиме текст Amigo
std::string s = "123";
s міститиме текст 123
std::string s = "Bond 007";
s міститиме текст Bond 007

Виглядає нескладно, правда? Тоді ось іще один цікавий факт.

Рядки в C++ можна склеювати за допомогою знака плюс — +. Приклад:

#include <string>

int main() {
    std::string s1 = std::string("Amigo") + " the best"; // s1 міститиме Amigo the best
  
    std::string s2 = ""; // s2 міститиме порожній рядок — без жодного символу.
  
    int x = 333;
    std::string s3 = std::string("Amigo") + std::to_string(x); // s3 міститиме Amigo333
}

Зверніть увагу на останній приклад: ми додали рядок і число. Тут теж усе просто: число спочатку перетворюється на рядок, а потім рядки склеюються. Під час додавання рядка й числа результатом завжди буде рядок.

5. Виведення змінної на екран

Здається, усе очевидно й дуже просто. Тож, можливо, ви вже здогадуєтеся, якою командою можна вивести змінну на екран?

Насправді все просто. Щоб вивести щось на екран, використовують std::cout і передають йому те, що потрібно вивести. Щоб перейти на новий рядок, зручно додати '\n'.

#include <iostream>
#include <string>

int main() {
    std::cout << "Amigo\n";              // Amigo

    std::cout << "Ami" << "go" << '\n';  // Amigo

    std::string s1 = "Amigo";
    std::cout << s1 << '\n';          	// Amigo

    std::string s2 = "Am";
    std::cout << s2 << "igo" << '\n'; 	// Amigo

}

Сподіваюся, тепер стало трохи зрозуміліше. А наскільки добре ви все зрозуміли, зараз перевіримо. Практика — найкращий критерій: лише вона показує, чи справді ви в усьому розібралися.

6. Скорочені операції присвоювання (+=, -=, *=, /=)

У C++ є зручна форма запису для операцій такого виду:

x = x + 5;

Її можна записати коротше:

x += 5;

Такий запис називають скороченим присвоюванням.

Приклади:

int x = 10;

x += 5;  // x = 15
x -= 3;  // x = 12
x *= 2;  // x = 24
x /= 4;  // x = 6

Тобто:

x += a   →   x = x + a
x -= a   →   x = x - a
x *= a   →   x = x * a
x /= a   →   x = x / a

Це не просто «краса коду» — такі записи коротші, зрозуміліші, і ними користуються постійно.

Скорочені операції працюють і з рядками:

std::string s = "Hello";
s += " World";   // "Hello World"

На JavaRush ви вивчаєте найновішу версію C++ (C++23), тож вам одразу доступні всі сучасні можливості. Користуйтеся! 😎

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ