|
Консольный ввод/вывод в JavaНаиболее простой способ ввзаимодействия с пользователем представляет консоль: мы можем выводить на консоль некоторую информацию или, наоборот, считывать с консоли некоторые данные. Для взаимодействия с консолью в Java применяется класс System, а его функциональность собственно обеспечивает консольный ввод и вывод. Вывод на консоль Для создания потока вывода в класс System определен объект out. В этом объекте определен метод println, который позволяет вывести на консоль некоторое значение с последующим переводом консоли на следующую строку. Например:
В метод println передается любое значение, как правило, строка, которое надо вывести на консоль. И в данном случае мы получим следующий вывод: Hello world!Bye world...При необходимости можно и не переводить курсор на следующую строку. В этом случае можно использовать метод System.out.print(), который аналогичен println за тем исключением, что не осуществляет перевода на следующую строку.
Консольный вывод данной программы: Hello world!Bye world...Но с помощью метода System.out.print также можно осуществить перевод каретки на следующую строку. Для этого надо использовать escape-последовательность \n:
Нередко необходимо подставлять в строку какие-нибудь данные. Например, у нас есть два числа, и мы хотим вывести их значения на экран. В этом случае мы можем, например, написать так:
Консольный вывод программы: x=5; y=6Но в Java есть также функция для форматированного вывода, унаследованная от языка С: System.out.printf(). С ее помощью мы можем переписать предыдущий пример следующим образом:
В данном случае символы %d обозначают спецификатор, вместо которого подставляет один из аргументов. Спецификаторов и соответствующих им аргументов может быть множество. В данном случае у нас только два аргумента, поэтому вместо первого %dподставляет значение переменной x, а вместо второго - значение переменной y. Сама буква d означает, что данный спецификатор будет использоваться для вывода целочисленных значений. Кроме спецификатора %d мы можем использовать еще ряд спецификаторов для других типов данных: · %x: для вывода шестнадцатеричных чисел · %f: для вывода чисел с плавающей точкой · %e: для вывода чисел в экспоненциальной форме, например, 1.3e+01 · %c: для вывода одиночного символа · %s: для вывода строковых значений Например:
При выводе чисел с плавающей точкой мы можем указать количество знаков после запятой, для этого используем спецификатор на %.2f, где.2 указывает, что после запятой будет два знака. В итоге мы получим следующий вывод: Name: Tom Age: 30 Height: 1,70Ввод с консоли Для получения ввода с консоли в классе System определен объект in. Однако непосредственно через объект System.in не очень удобно работать, поэтому, как правило, используют класс Scanner, который, в свою очередь использует System.in. Например, напишем маленькую программу, которая осуществляет ввод чисел:
Так как класс Scanner находится в пакете java.util, то мы вначале его импортируем с помощью инструкции import java.util.Scanner. Для создания самого объекта Scanner в его конструктор передается объект System.in. После этого мы можем получать вводимые значения. Например, в данном случае вначале выводим приглашение к вводу и затем получаем вводимое число в переменную num. Чтобы получить введенное число, используется метод in.nextInt();, который возвращает введенное с клавиатуры целочисленное значение. Пример работы программы: Input a number: 5Your number: 5Класс Scanner имеет еще ряд методов, которые позволяют получить введенные пользователем значения: · next(): считывает введенную строку до первого пробела · nextLine(): считывает всю введенную строку · nextInt(): считывает введенное число int · nextDouble(): считывает введенное число double · nextBoolean(): считывает значение boolean · nextByte(): считывает введенное число byte · nextFloat(): считывает введенное число float · nextShort(): считывает введенное число short То есть для ввода значений каждого примитивного типа в классе Scanner определен свой метод. Например, создадим программу для ввода информации о человеке:
Здесь последовательно вводятся данные типов String, int, float и потом все введенные данные вместе выводятся на консоль. Примерработыпрограммы: Input name: TomInput age: 34Input height: 1,7Name: Tom Age: 34 Height: 1,70Обратите внимание для ввода значения типа float (то же самое относится к типу double) применяется число "1,7", где разделителем является запятая, а не "1.7", где разделителем является точка. В данном случае все зависит от текущей языковой локализации системы. В моем случае русскоязычная локализация, соответственно вводить необходимо числа, где разделителем является запятая. То же самое касается многих других локализаций, например, немецкой, французской и т.д., где применяется запятая. Арифметические операции Большинство операций в Java аналогичны тем, которые применяются в других си-подобных языках. Есть унарные операции (выполняются над одним операндом), бинарные - над двумя операндами, а также тернарные - выполняются над тремя операндами. Операндом является переменная или значение (например, число), участвующее в операции. Рассмотрим все виды операций. В арифметических операциях участвуют числами. В Java есть бинарные арифметические операции (производятся над двумя операндами) и унарные (выполняются над одним операндом). К бинарным операциям относят следующие: · + операция сложения двух чисел:
· - операция вычитания двух чисел:
· * операция умножения двух чисел
· / операция деления двух чисел:
При делении стоит учитывать, так как если в операции участвуют два целых числа, то результат деления будет округляться до целого числа, даже если результат присваивается переменной float или double:
Чтобы результат представлял числос плавающей точкой, один из операндов также должен представлять число с плавающей точкой:
· % получение остатка от деления двух чисел:
Также есть две унарные арифметические операции, которые производятся над одним числом: ++ (инкремент) и -- (декремент). Каждая из операций имеет две разновидности: префиксная и постфиксная: · ++ (префиксный инкремент) Предполагает увеличение переменной на единицу, например, z=++y (вначале значение переменной y увеличивается на 1, а затем ее значение присваивается переменной z)
· ++ (постфиксный инкремент) Также представляет увеличение переменной на единицу, например, z=y++ (вначале значение переменной y присваивается переменной z, а потом значение переменной y увеличивается на 1)
· -- (префиксный декремент) уменьшение переменной на единицу, например, z=--y (вначале значение переменной y уменьшается на 1, а потом ее значение присваивается переменной z)
· -- (постфиксный декремент) z=y-- (сначала значение переменной y присваивается переменной z, а затем значение переменной y уменьшается на 1)
Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом... ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования... Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам... Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычислить, когда этот... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|