Можете ли вы помочь мне улучшить этот код? (Ява)
Всем привет, я здесь новичок, поэтому мне очень жаль, если я публикую это не в той категории. Я начинающий программист и пытаюсь стать лучше. Сейчас я пишу небольшой инструмент, который решает математические задачи. Я был бы очень признателен, если бы вы сказали мне, что я делаю неправильно и как я мог бы улучшить свой код (инструмент работает). Проект еще не закончен, и до сих пор я сделал только простой калькулятор. Однако я намерен построить другие функции так же, как этот простой калькулятор, так что любая обратная связь будет приятной.
Что я уже пробовал:
Это текущий код, причина, по которой все это находится внутри цикла while, заключается в том, что я хочу, чтобы пользователь мог использовать инструмент калькулятора несколько раз без необходимости запускать приложение каждый раз.
import java.util.Scanner; public class NumberHeron { public static void main(String[] args) { System.out.println("Choose your prefered tool\n"); System.out.println("1. Simple Calculator\n"); Scanner scanner = new Scanner(System.in); int tool = scanner.nextInt(); switch(tool) { case 1: while(tool == 1) { try { System.out.println("Enter two numbers"); double numOne = scanner.nextDouble(); double numTwo = scanner.nextDouble(); System.out.println("Enter an operation, valid ones are: +, -, *, /"); System.out.println("Type (q) to exit"); Scanner s = new Scanner(System.in); String operation = s.nextLine(); if (operation.equals("+")) { SimpleCalculator simpleCalc = new SimpleCalculator(); double result = simpleCalc.add(numOne, numTwo); System.out.println("The result is " + result); } else if (operation.equals("-")) { SimpleCalculator simpleCalc = new SimpleCalculator(); double result = simpleCalc.substract(numOne, numTwo); System.out.println("The result is " + result); } else if (operation.equals("*")) { SimpleCalculator simpleCalc = new SimpleCalculator(); double result = simpleCalc.multiply(numOne, numTwo); System.out.println("The result is " + result); } else if (operation.equals("/")) { SimpleCalculator simpleCalc = new SimpleCalculator(); double result = simpleCalc.divide(numOne, numTwo); System.out.println("The result is " + result); } else if (operation.equals("q")) { break; } } catch(Exception ex) { ex.printStackTrace(); break; } } } scanner.close(); } } class SimpleCalculator { public static double add(double valueOne,double valueTwo) { double result = valueOne + valueTwo; return result; } public static double substract(double valueOne, double valueTwo) { double result = valueOne - valueTwo; return result; } public static double multiply(double valueOne, double valueTwo) { double result = valueOne * valueTwo; return result; } public static double divide(double valueOne, double valueTwo) { double result = valueOne / valueTwo; return result; } }
Mohibur Rashid
в вашем исходном коде есть несколько проблем.
1. Алгоритм неверен
2. Вы объявили функцию в Симплекс-вычислитель как статическое но, вы пытаетесь получить к ним доступ через объект. Что не имеет особого смысла. Вот почему вы должны получить какое-то предупреждение.
SimpleCalculator.add(1.0, 2.0)все будет просто отлично
Skapelse
я немного запутался. Что значит, алгоритм неверен? Я хочу, чтобы пользователь вводил цифры. Спасибо!