Переменные и типы данных

В программах мы работаем с данными: числа, текст, ответы «да/нет». Переменная – это именованное место, где хранится значение.

В Java у каждого значения есть тип. Тип пишется перед именем переменной.

Основное

Шаблон объявления переменной:

тип имя = значение;

Чаще всего хватает пяти типов:

Что храним Тип Примеры значений
Целые числа int 0, 7, -3, 2025
Дробные числа double 3.14, 0.5, -2.75
Ответы «да/нет» boolean true, false
Один символ char 'A', '7', '+'
Текст String "Привет", "Java"

Примеры

int count = 10;
double price = 19.99;
boolean ok = true;
char letter = 'J';
String title = "Типы данных";

Можно сначала объявить, потом присвоить:

int x;
x = 5;

double y;
y = 3.5;

Строки можно склеивать с числами через + – числа автоматически превращаются в текст:

int age = 12;
String text = "Мне " + age + " лет";
System.out.println(text);

Мини-программа

import java.util.Scanner;

public class DataTypesDemo {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String name = in.nextLine();
        int age = in.nextInt();
        double avg = in.nextDouble();

        System.out.println("Имя: " + name);
        System.out.println("Возраст: " + age);
        System.out.println("Средний балл: " + avg);
    }
}

В C++ тип пишется перед именем переменной. Для текста обычно используют std::string.

Основное

Шаблон объявления переменной:

тип имя = значение;

Чаще всего хватает таких типов:

Что храним Тип Примеры значений
Целые числа int 0, 7, -3, 2025
Дробные числа double 3.14, 0.5, -2.75
Ответы «да/нет» bool true, false
Один символ char 'A', '7', '+'
Текст std::string "Привет", "C++"

Примеры

int count = 10;
double price = 19.99;
bool ok = true;
char letter = 'J';
std::string title = "Типы данных";

Мини-программа

#include <iostream>
#include <string>

int main() {
    std::string name;
    int age;
    double avg;

    std::getline(std::cin, name);
    std::cin >> age >> avg;

    std::cout << "Имя: " << name << "\n";
    std::cout << "Возраст: " << age << "\n";
    std::cout << "Средний балл: " << avg << "\n";
    return 0;
}

В Python переменной не нужно заранее задавать тип. Тип определяется по присваиванию.

Основное

Шаблон присваивания:

имя = значение

Чаще всего хватает таких типов:

Что храним Тип Примеры значений
Целые числа int 0, 7, -3, 2025
Дробные числа float 3.14, 0.5, -2.75
Ответы «да/нет» bool True, False
Текст str "Привет", "Python"

Отдельного типа char нет – один символ тоже хранится в str:

ch = 'A'

Примеры

count = 10
price = 19.99
ok = True
letter = 'J'
title = "Типы данных"

Строки можно склеивать с числами, но число нужно превратить в текст:

age = 12
text = "Мне " + str(age) + " лет"
print(text)

Мини-программа

name = input()
age = int(input())
avg = float(input())

print("Имя:", name)
print("Возраст:", age)
print("Средний балл:", avg)

Как задаётся тип

Язык Как получается тип Плюсы Минусы
Java Тип пишется явно: int x = 5; меньше случайных ошибок, код читается однозначно иногда нужно явно приводить тип
C++ Тип пишется явно: int x = 5; быстро, гибко, много вариантов типов больше деталей и «острых углов»
Python Тип выводится из значения: x = 5 писать быстрее ошибки типов часто видны только при запуске

Какие типы встречаются чаще всего

Что храним Java C++ Python
Целые числа int (для больших – long) int (для больших – long long) int
Дробные числа double double float
Ответ «да/нет» boolean (true/false) bool (true/false) bool (True/False)
Один символ char char отдельного типа нет, используют str длины 1
Текст String std::string str

Примеры одного и того же

Java:

int x = 5;
double y = 3.5;
boolean ok = true;
char ch = 'A';
String s = "Hi";

C++:

int x = 5;
double y = 3.5;
bool ok = true;
char ch = 'A';
std::string s = "Hi";

Python:

x = 5
y = 3.5
ok = True
ch = 'A'
s = "Hi"

Склейка текста и числа

Java и C++: обычно удобно выводить через поток/println – число преобразуется автоматически.

int age = 12;
System.out.println("Возраст: " + age);
int age = 12;
std::cout << "Возраст: " << age << "\n";

Python: при склейке через + число нужно превратить в строку.

age = 12
print("Возраст: " + str(age))

На что чаще всего натыкаются

В Java и C++ забывают, что тип фиксируется в момент объявления: в int нельзя хранить дробь.

В Python забывают преобразование ввода: input() даёт строку, и для числа нужно int(...) или float(...).