Основы синтаксиса Java

Структура программы

// Пакет (папка)
package com.example;

// Импорт
import java.util.List;

// Класс
public class Main {

    // Точка входа
    public static void main(String[] args) {
        System.out.println("Hello!");
    }
}

Важно:
- Файл называется так же, как public class
- Каждый оператор заканчивается ;
- Блоки кода в { }


Переменные

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

int count = 0;
String name = "Alice";
final double PI = 3.14;  // константа

Правила именования:
- camelCase: myVariable, orderCount
- Константы: MAX_SIZE, PI
- Нельзя начинать с цифры


Операторы

Арифметические

int a = 10, b = 3;
a + b   // 13
a - b   // 7
a * b   // 30
a / b   // 3  (целое деление!)
a % b   // 1  (остаток)

// Инкремент / Декремент
a++;    // a = a + 1
a--;    // a = a - 1
++a;    // сначала прибавит, потом вернёт
a++;    // сначала вернёт, потом прибавит

Составное присваивание

a += 5;   // a = a + 5
a -= 2;   // a = a - 2
a *= 3;   // a = a * 3
a /= 2;   // a = a / 2
a %= 4;   // a = a % 4

Сравнения (возвращают boolean)

a == b   // равно
a != b   // не равно
a > b    // больше
a < b    // меньше
a >= b   // больше или равно
a <= b   // меньше или равно

Логические

true && false  // false  (И)
true || false  // true   (ИЛИ)
!true          // false  (НЕ)

// Ленивые вычисления:
// && — если левая false, правая не проверяется
// || — если левая true, правая не проверяется

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

тип переменная = условие ? если_true : если_false;

int max = a > b ? a : b;
String s = x > 0 ? "positive" : "non-positive";

if / else

if (условие) {
    // блок 1
} else if (другое_условие) {
    // блок 2
} else {
    // иначе
}
// Пример
int score = 75;
if (score >= 85) {
    System.out.println("Отлично");
} else if (score >= 65) {
    System.out.println("Хорошо");
} else {
    System.out.println("Удовл.");
}

switch

// Классический
switch (переменная) {
    case значение1:
        // код
        break;          // без break — провал вниз!
    case значение2:
        // код
        break;
    default:
        // по умолчанию
}
int day = 3;
switch (day) {
    case 1: System.out.println("Пн"); break;
    case 2: System.out.println("Вт"); break;
    case 3: System.out.println("Ср"); break;
    default: System.out.println("?");
}
// switch-выражение (Java 14+)
String result = switch (day) {
    case 1 -> "Пн";
    case 2 -> "Вт";
    case 3 -> "Ср";
    default -> "?";
};

Методы

модификатор тип_возврата имя(параметры) {
    // тело
    return значение;
}
// Метод с возвратом
public static int add(int a, int b) {
    return a + b;
}

// Метод без возврата
public static void greet(String name) {
    System.out.println("Hi, " + name);
}

// Вызов
int sum = add(3, 5);   // 8
greet("Alice");

Перегрузка методов

// Одно имя, разные параметры
public static int sum(int a, int b) { return a + b; }
public static double sum(double a, double b) { return a + b; }
public static int sum(int a, int b, int c) { return a + b + c; }

Вывод в консоль

System.out.println("Текст");       // с переносом строки
System.out.print("Текст");         // без переноса
System.out.printf("i = %d%n", i); // форматированный

// Форматы:
// %d  — int/long
// %f  — float/double
// %s  — String
// %b  — boolean
// %n  — перенос строки
// %.2f — 2 знака после запятой

Ввод с консоли

import java.util.Scanner;

Scanner sc = new Scanner(System.in);
int n    = sc.nextInt();
double d = sc.nextDouble();
String s = sc.next();       // одно слово
String l = sc.nextLine();   // вся строка

Математические операции

import java.lang.Math; // обычно импортировать не надо

Math.abs(-5)       // 5
Math.max(3, 7)     // 7
Math.min(3, 7)     // 3
Math.pow(2, 10)    // 1024.0
Math.sqrt(16.0)    // 4.0
Math.round(3.7)    // 4
Math.floor(3.9)    // 3.0
Math.ceil(3.1)     // 4.0
Math.random()      // 0.0 .. 1.0 (случайное)

// Случайное int от 0 до 9:
int r = (int)(Math.random() * 10);
← Меню