2017-11-26 4 views
0

Der Versuch, den Gesamtwert aus der operatorSelection-Klasse aufzurufen, während diese Klasse angibt, was der Benutzer als Operator eingibt.Aufrufende Variable bei Verwendung der Scanner-Klasse und mehrerer Klassen

Ich möchte, dass es als Nummer1 (Betreiber gewählt) Nummer2 ... = Gesamt endet.

Nicht sicher, wie Klasse aufgerufen wird, damit es die "System.out.println (Nummer1 +" "+ Operator +" "+ Nummer2 +" "+ Operator +" "+ Nummer2 +" = "+ gesamt);" richtig.

Jegliches Wissen würde zu diesem Thema sehr geschätzt werden.

Danke.


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




} 
} 

Antwort

0

Ihr Problem ist, dass Sie die total Variable innerhalb die operatorSeletion Methode deklarieren, und Sie versuchen, darauf zuzugreifen ohne Lage es angeben. Sie müssen die Variable total als Feld deklarieren und dann auf sie zugreifen (new NumbersEntered().total). Sie rufen auch nie operatorSeletion auf, was helfen könnte;)

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) 
    } 
Verwandte Themen