使用 Scanner Class 和 Multiple Classes 时调用变量

Calling variable when using Scanner Class and Multiple Classes

尝试从 operatorSelection class 调用总值,而 class 引用用户作为运算符输入的内容。

我希望它最终以 number1(选择的操作员)number2...= 总数出现。

不确定如何调用 class 以便它打印“System.out.println(number1+” “+operator+” “+number2+” “+operator+” “+number2+” = “+ total) ; " 正确。

任何有关该主题的知识都将不胜感激。

谢谢。


import java.util.Scanner;


class NumbersEntered 
{



public void operatorSeletion(double number1, double number2, double number3, char operator)
{
    double total = 0;


    switch(operator)
    {
        case '+':
            total = number1 + number2 + number3;
            break;

        case '-':
            total = number1 - number2 - number3;
            break;

        case '*':
            total = number1 * number2 * number3;
            break;

        case '/':
            total = number1 / number2 / number3;
            break;

        default:
            System.out.println("You have entered incorrectly. Please try again.");

            return;
    }


}



}





public class JavaPresentation_KS {


public static void main(String[] args) {

    NumbersEntered nums = new NumbersEntered();
    Scanner equation = new Scanner(System.in);



    System.out.println("Enter first number: ");
    double number1 = equation.nextDouble();
    System.out.println("Enter second number: ");
    double number2 = equation.nextDouble();
    System.out.println("Enter third number: ");
    double number3 = equation.nextDouble();
    System.out.println("Enter an operator (+, -, *, /): ");
    char operator = equation.next().charAt(0);

    System.out.println(number1+" "+operator+" "+number2+" "+operator+" "+number2+ " = "+ total);




}
}

您的问题是您在 operatorSeletion 方法 中声明了 total 变量 ,然后您尝试在 不使用 指定它的位置。您需要将 total 变量声明为一个字段,然后在其位置 (new NumbersEntered().total) 访问它。此外,您永远不会调用 operatorSeletion,这可能会有所帮助;)

class NumbersEntered {

public double total = 0; //declare as accessable field

public  void operatorSeletion(double number1, double number2, double number3, char operator)
{     
    switch(operator)
    {
        case '+':
            total = number1 + number2 + number3;
            break;

        case '-':
            total = number1 - number2 - number3;
            break;

        case '*':
            total = number1 * number2 * number3;
            break;

        case '/':
            total = number1 / number2 / number3;
            break;

        default:
            System.out.println("You have entered incorrectly. Please try again.");

            return;
    }       
}
}
public class JavaPresentation_KS {


public static void main(String[] args) {

    NumbersEntered nums = new NumbersEntered();
    Scanner equation = new Scanner(System.in);

    System.out.println("Enter first number: ");
    double number1 = equation.nextDouble();
    System.out.println("Enter second number: ");
    double number2 = equation.nextDouble();
    System.out.println("Enter third number: ");
    double number3 = equation.nextDouble();
    System.out.println("Enter an operator (+, -, *, /): ");
    char operator = equation.next().charAt(0);

    nums.operatorSeletion(number1, number2, number3, operator); 
//invoke the method

    System.out.println(number1 + " " + operator + " " + number2 + " " + operator + " " + number2 + " = " + nums.total);
//Access at location (nums.total)   
    }