Как сделать ввод с клавиатуры в java
В Java для введения данных с клавиатуры можно использовать класс Scanner , который позволяет получать данные от пользователя через стандартный поток ввода System.in .
Вот пример кода, который считывает целое число с клавиатуры:
import java.util.Scanner; public class Main public static void main(String[] args) Scanner scanner = new Scanner(System.in); System.out.print("Введите целое число: "); int number = scanner.nextInt(); System.out.println("Вы ввели число: " + number); > >
В этом примере мы выполняем следующие действия:
- создаем объект класса Scanner и передаем ему стандартный поток ввода System.in ;
- затем мы выводим приглашение для пользователя с помощью метода print() и считываем введенное пользователем целое число с помощью метода nextInt() ;
- наконец, мы выводим считанное число на экран с помощью метода println()
Обратите внимание, что метод nextInt() блокирует выполнение программы, пока пользователь не введет целое число. Если пользователь введет не число, то программа выбросит исключение InputMismatchException
Аналогичным образом можно считывать переменные других типов данных: nextDouble() для типа double , nextLong() для типа long , nextFloat() для типа float , nextBoolean() для типа boolean , nextByte() для типа byte , nextShort() для типа short , nextLine() для типа String и т.д.
Подробнее ознакомиться с классом java.util.Scanner вы можете в документации .
Работа со сканером в Java (ввод и вывод данных)
Предлагаем вспомнить 2 примера из жизни, которые как нельзя кстати будут для изучения данной темы.
- Когда мы путешествуем, в аэропорту наш багаж пропускают через ленту со сканером. Вот она была наша сумка на входе. Просканировал сканер сумку и работник аэропорта четко знает что ж мы там такое везём в ней.
- Точно также работает сканнер в магазинах. Вот был штрих-код на входе, отсканировал штрих-код продавец и теперь всё-всё знает о продукте, который числится под этим штрих-кодом.
Чем то схожие задачи есть и в мире программирования на Java. Например, часто необходимо выполнить такие задачи:
- Пользователь ввёл в консоли какое-то число. А программа должна считать с консоли, какое же число ввёл пользователь.
- Пользователь ввёл в консоли какое-то слово. А программа должна считать с консоли, какое же слово ввёл пользователь.
Для решения таких задач в Java используется сканер (от англ. Scanner). Запомните: если что-то ввели в консоли, а нам надо считать что же именно ввели — используем сканер.
Итак, рассмотрим несколько примеров кода, после которых Вы:
- Поймёте на практике как работает сканер. Всего в статье будет 6 примеров кода. Рекомендуем все примеры кода запускать на своём компьютере и на практике изучать как это работает.
- Освоите 4 метода сканера:
Методы — это, грубо говоря, действия , которые может выполнять Scanner. На самом деле методов у сканера намного больше. Но на данном этапе Вам будет достаточно этих 4 методов. Ну что, поехали.
Пример №1 — с методом nextInt ()
Допустим, мы хотим, чтоб пользователь ввёл в консоль любое целое число от 1 до 10 , а программа вывела ему ответ, какое именно число он ввёл.
Поскольку нам необходимо как бы «сосканировать», какое число ввёл пользователь, всё логично — нам понадобится сканер. Ниже приводим решение и комментарии к решению.
Решение:
import java . util . Scanner ; // импорт сканера
class Test <
public static void main ( String args [ ] ) <
System . out . print ( "Введите любое целое число от 1 до 10: " ) ;
Scanner scan = new Scanner ( System . in ) ;
int number = scan . nextInt ( ) ;
System . out . println ( "Вы ввели число " + number ) ;
Если Вы попробуете запустить этот код на своём компьютере, то в консоли Вы увидите следующее:
Введите любое целое число от 1 до 10:
Затем, если Вы, например, введёте число 5, то в консоли будет следующее:
Введите любое целое число от 1 до 10: 5
Вы ввели число 5
Комментарии:
В статье «Что такое библиотека Java?» мы с Вами разобрались, что в Java есть огромная библиотека протестированного кода — это уже готовые решения ко многим задачам, которые стоят перед программистами в их ежедневной работе . Также мы говорили о различных пакетах, классах и методах. Так вот, сейчас мы будем с Вами работать с пакетом java.util. В этом пакете есть класс Scanner. И у него есть методы (действия), которые позволяют работать с вводом и выводом информации в консоль.

Но чтобы мы смогли использовать в нашем коде класс Scanner, нам необходимо сделать 3 шага.
Шаг №1 — обязательно прописать вот такую строчку в коде
Консольный ввод/вывод, импорт пакетов
Наиболее простой способ взаимодействия с пользователем представляет консоль: мы можем выводить в консоль некоторую информацию или, наоборот, считывать из консоли какие-либо данные.
- System.out.print – вывод данных без перехода на следующую строку;
- System.out.println – вывод данных с переходом на новую строку;
- System.out.printf – форматированный вывод данных.
System.out.print("Hello "); System.out.print("World!");
то в консоле мы увидим сообщение «Hello World!» в одну строку, без переноса строк, так как метод print не выполняет автоматический перенос на следующую строку. Правда мы можем сделать это самостоятельно, если пропишем символ ‘\n’ – перевода строки после первого слова «Hello»:
System.out.print("Hello\n");
В этом случае второе слово будет отображаться на следующей строке. Запомним этот символ переноса строки. Это универсальный символ, который применяется повсюду, а не только в этой функции. Если же нам нужно вывести сообщение в строку с автоматическим переходом на новую строку, то вместо print следует использовать метод println:
System.out.println("Hello"); System.out.print("World!");
Смотрите, здесь нет символа перевода строки, но слово «World!» все равно отобразилось с новой строки. Вот в этом отличие между print и println. Далее, с помощью этих функций можно выводить значения переменных, используя такие варианты:
short x = 5; double y = 4.5; System.out.println(x); System.out.println("x = " + x); System.out.println("x = " + x + ", y = " + y);
Вот эти плюсы здесь означают соединение двух строк, т.е. в конец первой строки добавляется вторая (либо числовое значение переменной, которое затем будет представлено в виде единой строки). Наконец, для тех кто знаком с языком С/С++ в Java есть функция printf, которая работает также и служит для форматированного вывода информации в консоль. Синтаксис этого метода такой: System.out.printf(<шаблон формата>, [список аргументов]); Например, мы можем вывести переменные x и y с помощью этой функции так:шаблон>
short x = 5; double y = 4.5; float z = 1.2f; System.out.printf("x = %d, y = %f, z = %.2f\n", x, y, z);
- %d – для целочисленных значений;
- %f – для вещественных значений;
- %.nf –вывод вещественного значения с точностью до n-го знака после запятой;
- %c – для отдельного символа (тип char);
- %s – для строк;
- %% — вывод процентов.
Но каждый раз вот так прописывать java.util.Scanner не очень то удобно. Поэтому мы сделаем так. Импортируем этот пакет с классом Scanner в нашу программу:
import java.util.Scanner;
И теперь все можно записать проще:
Далее, мы здесь создаем новый объект Scanner с помощью оператора new и будем работать с этим объектом через ссылку in на него. Позже в других уроках мы еще будем подробнее говорить о создании объектов и ссылках на них. Сейчас просто запомните, что вот так создаются объекты в Java. Теперь через ссылку in мы можем обращаться к открытым методам объекта Scanner. Например, для ввода целочисленных значений, достаточно записать:
int num = in.nextInt();
Мы здесь объявляем переменную num и сразу ее инициализируем значением, введенным с клавиатуры. То есть, метод nextInt() объекта Scanner реализует ввод целочисленного значения и, затем, возвращает полученный результат. Далее, выведем введенное значение в консоль, чтобы убедиться, что все работает:
System.out.printf("Your number: %d \n", num);
И после окончания работы с входным потоком, его нужно закрыть:
in.close();
- next(): считывает введенную строку до первого пробела;
- nextLine(): считывает введенную строку до перевода строки;
- nextByte(): считывает введенное число как byte;
- nextShort(): считывает введенное число как short;
- nextInt(): считывает введенное число как тип int;
- nextDouble(): считывает введенное число как double;
- nextFloat(): считывает введенное число как float;
- nextBoolean(): считывает значение boolean.
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Input name: "); String name = in.nextLine(); System.out.print("Input age: "); int age = in.nextInt(); System.out.print("Input height: "); float height = in.nextFloat(); System.out.printf("Name: %s Age: %d Height: %.2f \n", name, age, height); in.close(); } }
И обратите внимание, когда мы вводим вещественное значение, то мне приходится вводить его через запятую. Если пишется точка, то возникает исключение некорректного ввода данных. Это связано с настройкой языковой локализации на конкретном компьютере. И у вас, возможно, с другой настройкой нужно будет писать точку. Вот такой существует нюанс, который сейчас просто имейте в виду. Вот так в Java реализуется консольный вывод и ввод информации. И вы теперь знаете как это все работает.
#5 – Данные от пользователя. Математические действия

Программирование становится интересным как только мы начинаем работать с пользователем. За урок вы научитесь использовать класс Scanner и на его основе разберетесь с темой получения данных от пользователя. Помимо этого вы научитесь выполнять различные математические действия.
Видеоурок
Получение данных
В Java за пользовательский ввод данных с клавиатуры отвечает класс Scanner. Перед использованием каких-либо классов их изначально необходимо импортировать. После импорта вы можете работать с классами, используя их функции и значения.
С классом Scanner мы поступим точно также и сперва импортируем его:
import java.util.Scanner;
Далее необходимо создать объект (экземпляр) класса Scanner.
Экземпляр – это объект класса, который наследует все методы и переменные класса. Про классы и объекты мы еще детально будем говорить в теме ООП.
Scanner some_name = new Scanner(System.in); // Создаем объект с именем some_name
На этом этапе мы еще не просим пользователя ввести что-либо с клавиатуры. Мы просто создаем объект при помощи которого сможем просить пользователя ввести какое-то значение. Чтобы получить данные от пользователя мы используем метод класса:
int val = some_name.nextInt();
Если мы хотим получить не число, а строку или число с плавающей точкой, то необходимо использовать другие методы.
Несколько основных методов:
- nextLine () — для ввода строки. Возвращаемый тип данных String;
- nextInt () — для ввода целых чисел. Возвращаемый тип данных int;
- nextFloat () — для ввода чисел с плавающей точкой. Возвращаемый тип данных float;
- nextDouble () — для ввода больших чисел с плавающей точкой. Возвращаемый тип double.
Математические операции
В Java можно выполнять все математические операции. Это такие операции, как:
- вычитание — z = y — x ;
- сложение — z = y + x ;
- умножение — z = y * x ;
- деление — z = y / x (на ноль делить нельзя);
- остаток при делении — z = y % x ;
Если операция проходит над одной и той же переменной, то можно запись сократить:
z = z + 20; z += 20; // Эта запись аналогична той, что находиться выше
Если нам необходимо увеличить или уменьшить число на 1, то мы можем прописать ++ и — соответсвенно:
z = 10; z += 1; z++; // Аналогично тому, что прописано выше
Весь код будет доступен после подписки на проект!
Задание к уроку
Получение данных
Получите от пользователя число с плавающей точкой. Выведите число в консоль.
Посмотреть ответ
Задание можно выполнить прописав подобный код:
System.out.print("Введите число с точкой: "); Scanner num = new Scanner(System.in); System.out.println("Ваше число - " + num.nextFloat ());
Получить остальные домашние задания можно после подписки на проект
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
