Мне нужно создать программу, которая использует два разных метода. Первый метод добавляет 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
}
}




просто верните их, а затем добавьте
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);
}
}
Есть несколько вариантов:
AB возвращение D и XY возвращение Z и работайте с этими результатами.static void methodAB(){
//do stuff
return d;
}
public static void main(String[] args) {
float res = methodAB() + methodXY();
}
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);
}
}
Возвращайте отдельные суммы из функций