Консольный калькулятор Java

FacebooktwittertumblrFacebooktwittertumblr

Данная статья написана командой Vertex Academy. Это одна из статей из нашего "Самоучителя по Java."


Условие задачи:

Необходимо написать простой консольный калькулятор на Java.

  • Метод int getInt() - должен считывать с консоли целое число и возвращать его
  • Метод char getOperation() - должен считывать с консоли какое-то значение и возвращать символ с операцией (+, -, * или /)
  • Метод int calc(int num1, int num2, char operation) - должен выполнять над числами num1 и num2 арифметическую операцию, заданную operation.
  • Метод main() - должен считывать 2 числа (с помощью getInt()), считать операцию (с помощью getOperation(), передать все методу calc() и вывести на экран результат.

Решение:

Комментарии к задаче:

Прежде чем решать данную задачу, необходимо разбить задачу на подзадачи. Как видно из картинки ниже, всего есть 3 основных шага:

Поэтому в методе int getInt() мы прописали механику считывания числа с консоли и проверки целочисленное число введено или нет.

  • И потом просто в методе main() вызовем 2 раза метод int getInt(), потому что пользователь будет вводить 2 числа.
  • Обратите внимание, что с помощью конструкции if-else мы прописали, что если число целочисленное, тогда присвоить введенное пользователем значение в переменную num, если же не целочисленное, - вывести в консоль "Вы допустили ошибку при вводе числа. Попробуйте еще раз".
  • Также обратите внимание, что мы использовали рекурсию в else:

Выбор операции (+,-,*,/) мы осуществили с помощью метода char getOperation()

Как видите, пользователю предлагается ввести операцию. А далее программа должна распознать было ли введенное пользователем значение типа char или нет. Причем нас устроит только, если пользователь введет:  +, - , * или /. Например, если пользователь введет число, нас не устроит. Верно? Поэтому мы применили небольшую "хитрость" вот в этих 2 строчках кода:

Мы с помощью метода сканера next() считали всю строчку. А далее, поскольку нам не нужна вся строка, а нужен только первый элемент строки, то есть нулевой элемент, поэтому мы вызвали еще и метод charAt(0). И таким образом мы получим только значение 0-го элемента, а не всей строки.

Если вдруг подзабыли как работают методы сканера, перечитайте еще раз вот эту статью - "Работа со сканером в Java".  А также, если необходимо вспомнить как работает метод charAt(), перечитайте вот эту статью - "charAt() в Java"

И далее мы прописали сам метод int calc(int num1, int num2, int operation):

Как видите, мы использовали конструкцию switch-case. И прописали, что:

  • если пользователь ввел +, тогда num1+num2, то есть суммируем 2 числа, введенных пользователем.
  • если пользователь ввел -, тогда num1-num2, то есть из 1-го числа, введенного пользователем вычитаем 2-е число
  • и т.д.

Если вдруг Вам необходимо вспомнить как работает конструкция switch-case, перечитайте вот эту статью - "Условный оператор if в Java. Оператор switch"

Также обратите внимание, что здесь мы тоже использовали рекурсию. Вот в этих строчках кода:

И после того как мы прописали все необходимы методы, мы в методе main() прописали следующее:

  • То есть в переменные num1 и num2 будут присвоены, соответственно, 1-е и 2-е число, введенное пользователем.
  • В переменную operation будет присвоена операция, которую ввел пользователь: +, - , * или /
  • Далее в переменную result будет присвоен результат вычислений "нашего калькулятора"
  • И после этого результат будет выведен в консоль

Надеемся - наша статья была Вам полезна. Есть возможность записаться на наши курсы по Java. Детальную информацию смотрите у нас на сайте.

 

FacebooktwittertumblrFacebooktwittertumblr

FacebooktwittertumblrFacebooktwittertumblr
Самоучители--узнать детальнее--