我正在试图弄清楚如何在方法中更新我的数字,即使我在它之前预定了一个静态值并且旨在在方法内更新它。任何帮助将不胜感激。我知道我将结果设置为0但我的问题是如何更新它?
import javax.swing.*;
public class Arithmetic2
{
public static void main(String args[])
{
double numberOne, numberTwo;
String numberOneString, numberTwoString;
String operation;
double result;
numberOneString = JOptionPane.showInputDialog("Enter the first number: ");
numberOne = Double.parseDouble(numberOneString);
numberTwoString = JOptionPane.showInputDialog("Enter the second number: ");
numberTwo = Double.parseDouble(numberTwoString);
operation = JOptionPane.showInputDialog("Enter an operator (+.-.*,/,%): ");
// Call performOperation method here
result = 0;
performOperation(numberOne, numberTwo, operation, result);
System.out.format("%.2f",numberOne);
System.out.print(" " + operation + " ");
System.out.format("%.2f", numberTwo);
System.out.print(" = ");
System.out.format("%.2f", result);
System.exit(0);
} // End of main() method.
// Write performOperation method here.
private static double result;
public static void performOperation(double numberOne, double numberTwo, String operation, double result) {
System.out.println("Res Equals the default 0: " + result);
switch(operation) {
case "+" : result = numberOne+numberTwo; break;
case "-" : result = numberOne-numberTwo; break;
case "*" : result = numberOne*numberTwo; break;
case "/" : result = numberOne/numberTwo; break;
case "%" : result = numberOne%numberTwo; break;
default : System.out.println("Invalid operator!");
}
System.out.println("Result New: " + result);
}
}
答案 0 :(得分:-1)
您的方法performOperation
会返回void
值。这是一个空值。您必须在您的案例中返回result
的值类型double
。
所以,改变现状:
public static void performOperation(double numberOne, double numberTwo, String operation, double result) {
System.out.println("Res Equals the default 0: " + result);
switch(operation) {
case "+" : result = numberOne+numberTwo; break;
case "-" : result = numberOne-numberTwo; break;
case "*" : result = numberOne*numberTwo; break;
case "/" : result = numberOne/numberTwo; break;
case "%" : result = numberOne%numberTwo; break;
default : System.out.println("Invalid operator!");
}
System.out.println("Result New: " + result);
}
到这一个:
public static double performOperation(double numberOne, double numberTwo, String operation) {
double result = 0;
System.out.println("Res Equals the default 0: " + result);
switch(operation) {
case "+" : result = numberOne+numberTwo; break;
case "-" : result = numberOne-numberTwo; break;
case "*" : result = numberOne*numberTwo; break;
case "/" : result = numberOne/numberTwo; break;
case "%" : result = numberOne%numberTwo; break;
default : System.out.println("Invalid operator!");
}
System.out.println("Result New: " + result);
return result;
}
然后从此处更改您的代码:
result = 0;
performOperation(numberOne, numberTwo, operation, result);
到此:
result = performOperation(numberOne, numberTwo, operation);