Ввод данных через консоль используя Scanner

88
23 марта 2021, 12:30
Scanner console = new Scanner(System.in);
System.out.println("How much money do you have?");
double money = console.nextDouble();
System.out.println(money);

Почему при вводе данных в консоль, например 100 * 5, получается не 500.0, а ошибка?

Answer 1

А где ошибка у вас получается, в IDE? У вас должно захватываться только первое число - это либо 100, если вы вводите 100 * 5, либо 5, если вы вводите 5 * 100.

Метод nextDouble() захватывает первое число слева, а всё, что после пробела - он игнорирует.

Поэтому на выводе у вас должна быть не ошибка, а 100.00 либо 5.00.

Answer 2

Дело в том что при вводе тебе необходимо указать число, а не операцию. При вводе через Scanner тебе необходимо указать лишь число double в данном случае, а затем можно просто дописать код.

Scanner console = new Scanner(System.in);
System.out.println("How much money do you have?");
double money = console.nextDouble();
money = money *5;
System.out.println(money);

Answer 3

Scanner принимает значения, а не выполняет функции. В случае с nextDouble() Scanner ожидает double-значение. Ошибка выпадать не должна, так как nextDouble()считывает первое значение и в консоль выводить его. Чтобы все выполнялось правильно, нужно сделать это:

double money = console.nextDouble();
money = money * 5;
READ ALSO
Как вытащить параметры с JSP страницы?

Как вытащить параметры с JSP страницы?

Есть JSP страница, на которой меняется какой-то текст, как можно изменения текста передавать на контроллер? То есть при нажатии на кнопку "отправить"...

102
Вопрос по интерфейсам и классам java

Вопрос по интерфейсам и классам java

Допустим есть интерфейс Soldier

95
Получить значение

Получить значение

Помогите в решении проблемыЕсть класс

102
Автозамена на спецсимволы

Автозамена на спецсимволы

Есть небольшое веб приложение для обмена сообщениями, вроде форума

114