☕ Java

Ввод и вывод данных в Java 17: подробное руководство

Ввод и вывод данных в Java 17

Что такое ввод и вывод и зачем это нужно?

Представь, что ты создаёшь программу-калькулятор, которая считает твои карманные расходы. Чтобы программа могла что-то посчитать, ей сначала нужно получить от тебя данные — например, сколько ты потратил в понедельник. Это называется вводом.

После того как программа посчитает результат, она должна показать его тебе — например, вывести на экран «Твои расходы за неделю: 1500 рублей». Это называется выводом.

Без ввода и вывода программа похожа на робота с закрытыми глазами и ртом — она ничего не узнает и ничего не расскажет. Поэтому это самый первый и важный навык, который нужно освоить.

Основной синтаксис: как выводить текст

В Java 17 для вывода данных используется команда System.out.println(). Она выводит текст и автоматически переводит курсор на новую строку.

public class Main {
    public static void main(String[] args) {
        System.out.println("Привет, мир!");
        System.out.println("Это моя первая программа.");
    }
}

Результат работы:

Привет, мир!
Это моя первая программа.

Если нужно вывести текст без перехода на новую строку, используй System.out.print():

public class Main {
    public static void main(String[] args) {
        System.out.print("Привет");
        System.out.print(", друг!");
    }
}

Результат работы:

Привет, друг!

Также можно выводить числа и результаты вычислений:

public class Main {
    public static void main(String[] args) {
        int a = 5;
        int b = 3;
        System.out.println("Сумма: " + (a + b));
    }
}

Результат работы:

Сумма: 8

Основной синтаксис: как вводить данные

Для ввода данных в Java 17 используется класс Scanner. Его нужно «подключить» к программе с помощью специальной команды import.

Пошаговая инструкция:

  1. Напиши в самом верху файла: import java.util.Scanner;
  2. Создай объект Scanner: Scanner scanner = new Scanner(System.in);
  3. Используй методы для чтения данных:
    • nextInt() — для целых чисел
    • nextDouble() — для дробных чисел
    • nextLine() — для строк (текста)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("Введите ваше имя: ");
        String name = scanner.nextLine();
        
        System.out.print("Введите ваш возраст: ");
        int age = scanner.nextInt();
        
        System.out.println("Привет, " + name + "!");
        System.out.println("Тебе " + age + " лет.");
    }
}

Пример работы программы:

Введите ваше имя: Аня
Введите ваш возраст: 12
Привет, Аня!
Тебе 12 лет.

Разбор типичных задач

Задача 1. Площадь прямоугольника

Нужно запросить длину и ширину, посчитать площадь (длина × ширина) и вывести результат.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("Введите длину прямоугольника: ");
        int length = scanner.nextInt();
        
        System.out.print("Введите ширину прямоугольника: ");
        int width = scanner.nextInt();
        
        int area = length * width;
        System.out.println("Площадь прямоугольника: " + area);
    }
}

Задача 2. Определение возраста

Программа получает год рождения и текущий год, вычисляет возраст.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("Введите год рождения: ");
        int birthYear = scanner.nextInt();
        
        System.out.print("Введите текущий год: ");
        int currentYear = scanner.nextInt();
        
        int age = currentYear - birthYear;
        System.out.println("Ваш возраст: " + age + " лет");
    }
}

Частые ошибки новичков

  • Забыл импортировать Scanner. Без строчки import java.util.Scanner; программа не будет работать и выдаст ошибку.
  • Перепутал методы ввода. Если нужно ввести число, используй nextInt(), а не nextLine(). И наоборот, для текста используй nextLine().
  • Не создал объект Scanner. Мало написать import, нужно ещё создать scanner: Scanner scanner = new Scanner(System.in);.
  • Забыл точку с запятой. В Java каждая команда заканчивается точкой с запятой ;.
  • Проблема с nextLine() после nextInt(). После nextInt() в буфере остаётся символ перевода строки. Если после этого вызвать nextLine(), он его «проглотит». Чтобы этого избежать, добавь лишний scanner.nextLine(); после nextInt().

Итоговый пример: Уютное кафе

Давай напишем программу, которая поможет кассиру в кафе принять заказ. Программа спросит имя клиента, напиток и размер порции, а затем выведет итоговый заказ.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("Введите ваше имя: ");
        String name = scanner.nextLine();
        
        System.out.print("Выберите напиток (кофе, чай, какао): ");
        String drink = scanner.nextLine();
        
        System.out.print("Выберите размер порции (маленькая, средняя, большая): ");
        String size = scanner.nextLine();
        
        System.out.println();
        System.out.println("=== Ваш заказ ===");
        System.out.println("Клиент: " + name);
        System.out.println("Напиток: " + drink);
        System.out.println("Размер: " + size);
        System.out.println("Спасибо за заказ! Приятного аппетита!");
    }
}

Пример работы программы:

Введите ваше имя: Дима
Выберите напиток (кофе, чай, какао): какао
Выберите размер порции (маленькая, средняя, большая): большая

=== Ваш заказ ===
Клиент: Дима
Напиток: какао
Размер: большая
Спасибо за заказ! Приятного аппетита!

Теперь ты знаешь основы ввода и вывода в Java 17. Пробуй решать задачи — с каждым разом будет получаться всё лучше и быстрее!