gpt4 book ai didi

Java:将用户输入的变量从一种方法调用到另一种方法

转载 作者:行者123 更新时间:2023-12-01 11:56:18 25 4
gpt4 key购买 nike

我目前正在修改以前的 Java 程序,该程序通过将部分代码分解为方法并调用这些方法来完成相同的任务来计算二次公式类型的数学问题。目前,我一直致力于创建一种计算分子判别式的方法。按照分配,我应该有一种方法可以接收用户输入的 a、b 和 c 值,但我不确定如何将这些值从一个方法获取到下一个方法,该方法应该在计算。

我的老师希望我们将 a b 和 c 变量输入到数组中,我知道现在的方式是将值放入数组中的一种非常手动的方式,但仍然应该适用于此目的。

这是我迄今为止所掌握的内容,感谢您的阅读。

编辑:我从头开始,我不知道如何从我的方法中正确返回信息,以便下一个可以使用它。我不断收到方法参数不适用的错误。有什么想法吗?

import java.util.*;

public class QuadraticMethods {
public static void main(String[] args){

getValues();
calcDisc(userInput);



}


public static double[] getValues() {
double[] userInput;
userInput = new double[3];
Scanner kbd = new Scanner(System.in);
System.out.println("Fourth Assignment by MyNameHere");
System.out.println("Welcome to the quadratic formula computation tool.");
System.out.println("This tool will solve problems in the form of: a^x + bx + c.");
System.out.println("Please enter the values you would like for a, b, and c.");
for (int i = 0; i < userInput.length; i++) {
userInput[i] = kbd.nextDouble(); }


double aValue = userInput[0];
double bValue = userInput[1];
double cValue = userInput[2];
/*
System.out.println(aValue);
System.out.println(bValue);
System.out.println(cValue);
*/
return userInput;
}


public static double calcDisc(double[] userInput) {
double aValue = userInput[0];
double bValue = userInput[1];
double cValue = userInput[2];
double radicalValue = (Math.pow(bValue, 2) - (4*aValue*cValue));
System.out.println(radicalValue);
return radicalValue;
}

}

最佳答案

要使当前的代码正常工作,只需进行一些小的更改:

public static void main(String[] args) {

double[] userInput = getValues();
calcDisc(userInput);
}

此外,这些分配并未实际使用。

public static double[] getValues() {
// ...

double aValue = userInput[0];
double bValue = userInput[1];
double cValue = userInput[2];

// ...
}

其他一些改进可能是:

结果不应由计算它的方法打印。您已经通过返回值以正确的方式声明了该方法。现在您应该使用返回值并在调用方法中打印结果。

public static void main(String[] args) {

double[] userInput = getValues();
double radicalValue = calcDisc(userInput);

System.out.println(radicalValue);
}

// ...

public static double calcDisc(double[] userInput) {
double aValue = userInput[0];
double bValue = userInput[1];
double cValue = userInput[2];
double radicalValue = (Math.pow(bValue, 2) - (4 * aValue * cValue));
return radicalValue;
}

打印横幅不应与请求用户输入混合在一起。想象一下,您想要重复读取/评估/打印周期:

public static void main(String[] args) {

while (true) {
double[] userInput = getValues();
double radicalValue = calcDisc(userInput);

System.out.println(radicalValue);
}
}

每次都会打印横幅文本。隔离职责使您能够在不影响不相关代码的情况下改变行为。

public static void main(String[] args) {

printBanner();
while (true) {
double[] userInput = getValues();
double radicalValue = calcDisc(userInput);

System.out.println(radicalValue);
}
}

private static void printBanner() {
System.out.println("Fourth Assignment by MyNameHere");
System.out.println("Welcome to the quadratic formula computation tool.");
System.out.println("This tool will solve problems in the form of: a^x + bx + c.");
}

扫描仪应在使用后关闭。 Java 7 尝试资源将为您做到这一点。

public static double[] getValues() {
double[] userInput;
userInput = new double[3];
try (Scanner kbd = new Scanner(System.in)) {
System.out.println("Please enter the values you would like for a, b, and c.");
for (int i = 0; i < userInput.length; i++) {
userInput[i] = kbd.nextDouble();
}
}
return userInput;
}

关于Java:将用户输入的变量从一种方法调用到另一种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28423682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com