值不会改变,如何更新方法中的预定义值

查德·布罗迪

我试图弄清楚如何在方法中更新我的号码,即使我在它之前预定义了一个静态值并打算在方法内更新它。任何帮助将不胜感激。我知道我将结果设置为 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);
    }
}
苏格拉底

您的方法performOperation返回一个void值。那是一个空值。你必须返回值类型resultdouble你的情况。

所以,改变你的当前:

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);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章