У меня есть мой код здесь, который я разместил здесь раньше, и мне помогли раньше. Переменные кажутся неправильными, и я не уверен, почему. Я вошел в долю 1/2 + 3/4, и я получаю ответ 8/4. Я знаю, что это связано с переменными, потому что, когда я запускаю отладчик, он говорит, что «a» = 1, 'b' = 1, 'c' = 4 и 'd' = 4. «a» и «d» верны в том, как я их хочу, переходя от «a» до «d» слева направо. Я думаю, я знаю, где проблема, но я не знаю, как это исправить. Я думаю, что проблема с «Ъ» должен делать с этой строки кодаНеверные переменные; калькулятор фракции; JAVA
b = Integer.parseInt("1");
Вот мой полный код
импорт java.util. *;
public class Calculator {
public static void main(String[] args) {
System.out.println("Please enter two fractions to add, subtract, multiply, or divide\nor\nType 'quit' to exit the program.");
Boolean on = true;
Scanner console = new Scanner(System.in);
while (on) {
String input = console.nextLine();
if (input.equalsIgnoreCase("quit")) {
on = false;
} else
System.out.println(run(input));
}
}
public static String run(String input) {
int indexOfSecondSpace = 0;
int indexOfOperation = 0;
String firstNumber = "0";
String secondNumber = "0";
int beginning = input.indexOf(" ") + 1;
int end = input.indexOf(" ", beginning);
String operator = input.substring(beginning, end);
if (input.contains("+") == true) {
indexOfOperation = input.indexOf("+");
} else if (operator.equals("-")) {
indexOfOperation = input.indexOf("-");
} else if (operator.equals("*")) {
indexOfOperation = input.indexOf("*");
} else if (operator.equals("/")) {
indexOfOperation = input.indexOf("/");
}
firstNumber = (input.substring(0, input.indexOf(" ")));
secondNumber = (input.substring(beginning + 1));
int a = 0;
int b = 0;
int c = 0;
int d = 0;
if (firstNumber.contains("/")) {
a = Integer.parseInt(firstNumber.substring(0,firstNumber.indexOf("/")));
b = Integer.parseInt(firstNumber.substring(0,firstNumber.indexOf("/")));
} else if (!firstNumber.contains("/"))
a = Integer.parseInt(input.substring(0, input.indexOf(" ")));
b = Integer.parseInt("1");
{
if (secondNumber.contains("/")) {
c = Integer.parseInt(secondNumber.substring(secondNumber.indexOf("/")+1));
d = Integer.parseInt(secondNumber.substring(secondNumber.indexOf("/")+1));
} else if (!secondNumber.contains("/")) {
c = Integer.parseInt(secondNumber.substring(secondNumber.length()));
d = Integer.parseInt("1");
}
}
String res = calculate(input, a, b, c, d) ;
return res;
}
public static String calculate(String input, int a, int b, int c, int d){
if (input.contains ("+"))
{
System.out.println("your answer is " + (a*d + b*c)+"/" +(b*d));
}
else if (input.contains("-"))
{
System.out.println("your answer is " + (a*d - b*c)+ "/" +(b*d));
}
else if (input.contains("/"))
{
System.out.println("your answer is " + (a*d)/(b*c)+ "/" +(b*d));
}
else if (input.contains("*"))
{
System.out.println("your answer is " + (a*c) +"/" +(b*d));
}
return input;
}
}
так, как бы я идти вокруг фиксируя это, чтобы сделать его напечатать вывод я хочу его тоже. извините, я по-прежнему новичок в java. помощь приветствуется. благодаря – diy900