Как добавить две переменные, которые находятся в двух разных методах Java?

Мне нужно создать программу, которая использует два разных метода. Первый метод добавляет a + b + c = d, а второй — x + y = z. Затем он должен распечатать d и z, а также сумму d + z. Программа должна принимать данные от пользователя.

Я знаю, что вы не можете вызывать переменные вне их методов, есть ли обходной путь? Он должен следовать инструкциям, которые я ранее изложил.

Мне не хватает части, где я добавляю d и z, это моя текущая программа:

import java.util.Scanner;

public class myProgram {
    
    static void methodAB(){
        
        Scanner myScan = new Scanner(System.in);
        System.out.println("Enter A: ");
        float A = myScan.nextFloat();
        System.out.println("Enter B: ");
        float B = myScan.nextFloat();
        System.out.println("Enter C: ");
        float C = myScan.nextFloat();
        
    float D = A + B + C;
    System.out.println("Sum of MethodAB: " + D);
    
    }
     static void methodXY(){
         
        Scanner myScan = new Scanner(System.in);
        System.out.println("Enter X: ");
        float X = myScan.nextFloat();
        System.out.println("Enter Y: ");
        float Y = myScan.nextFloat();  

    float Z = X + Y;
    System.out.println("Sum of MethodXY: " + Z);
    }


    public static void main(String[] args) {
    methodAB();
    methodXY();
    //this is the part im stuck on
    //i cant call variables d and z so i cant add them together

    }
}

Возвращайте отдельные суммы из функций

possum 08.03.2024 10:09
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
74
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

просто верните их, а затем добавьте

public class MyProgram {
    
    static float methodAB() {
        Scanner myScan = new Scanner(System.in);
        System.out.println("Enter A: ");
        float A = myScan.nextFloat();
        System.out.println("Enter B: ");
        float B = myScan.nextFloat();
        System.out.println("Enter C: ");
        float C = myScan.nextFloat();
        
        float D = A + B + C;
        System.out.println("Sum of MethodAB: " + D);
        return D;
    }
    
    static float methodXY() {
        Scanner myScan = new Scanner(System.in);
        System.out.println("Enter X: ");
        float X = myScan.nextFloat();
        System.out.println("Enter Y: ");
        float Y = myScan.nextFloat();  

        float Z = X + Y;
        System.out.println("Sum of MethodXY: " + Z);
        return Z;
    }

    public static void main(String[] args) {
        float dResult = methodAB();
        float zResult = methodXY();

        float sumResult = dResult + zResult;
        
        System.out.println("Sum of D and Z: " + sumResult);
    }
}

Есть несколько вариантов:

  1. Имейте AB возвращение D и XY возвращение Z и работайте с этими результатами.
static void methodAB(){
  //do stuff
  return d;
}
public static void main(String[] args) {
    float res = methodAB() + methodXY();
}
  1. Используйте переменные класса/экземпляра
public class MyClass {

  private float d;
  private float z;

  void methodAB(){
    //do stuff
    float D = A + B + C;
    this.d = D;
  }
  void methodXY(){
    //do stuff
    float Z = X + Y;
    this.z = Z;
  }

  void sum() {
    System.out.println("sum - " + (this.d + this.z));
  }
  
  //or define getters for d and z and use them

  public static void main(String[] args) {
    MyClass myClass = new MyClass();
    myClass.methodAB();
    myClass.methodXY();
    myClass.sum();
  }
}

Вы также можете использовать статическую переменную экземпляра sum для хранения суммы D и Z.

import java.util.Scanner;

public class StackAnswer {
    static float sum=0;
    static void methodAB(){

        Scanner myScan = new Scanner(System.in);
        System.out.println("Enter A: ");
        float A = myScan.nextFloat();
        System.out.println("Enter B: ");
        float B = myScan.nextFloat();
        System.out.println("Enter C: ");
        float C = myScan.nextFloat();

        float D = A + B + C;
        sum = sum + D;
        System.out.println("Sum of MethodAB: " + D);

    }
    static void methodXY(){

        Scanner myScan = new Scanner(System.in);
        System.out.println("Enter X: ");
        float X = myScan.nextFloat();
        System.out.println("Enter Y: ");
        float Y = myScan.nextFloat();

        float Z = X + Y;
        sum = sum + Z;
        System.out.println("Sum of MethodXY: " + Z);
    }


    public static void main(String[] args) {
        methodAB();
        methodXY();
        System.out.println("sum of D and Z is "+sum);
    }
}

Другие вопросы по теме

Похожие вопросы