Java 如何调用和声明参数数量可变的方法?
我试图用(int=amountCoefficients)数量的参数调用一个函数,并且声明一个同样数量的参数的函数 更难的是,例如amountCoefficients=5,这意味着有一个由5个块组成的数组,每个块都有一个值(double)。因此,第一个参数必须等于该数组第一个块的值,第二个参数必须等于该数组第二个块的值,依此类推 之前我们不知道需要多少参数,因为这取决于用户填写的双倍数,所以amountCoefficients可以等于2、4或任何其他正整数 我对Java非常陌生,我真的不知道该怎么做。正如你们在下面看到的,我试图用for循环做一些事情,但我认为这不起作用Java 如何调用和声明参数数量可变的方法?,java,arrays,variables,methods,Java,Arrays,Variables,Methods,我试图用(int=amountCoefficients)数量的参数调用一个函数,并且声明一个同样数量的参数的函数 更难的是,例如amountCoefficients=5,这意味着有一个由5个块组成的数组,每个块都有一个值(double)。因此,第一个参数必须等于该数组第一个块的值,第二个参数必须等于该数组第二个块的值,依此类推 之前我们不知道需要多少参数,因为这取决于用户填写的双倍数,所以amountCoefficients可以等于2、4或任何其他正整数 我对Java非常陌生,我真的不知道该怎么
public class Interpol {
public static void main(String []args) {
Scanner scanner = new Scanner(System.in);
//acquire user input (polynomial coefficients and interval values x1 and x2)
ArrayList<Double> polynomialCoefficients = new ArrayList<Double>();
int amountCoefficients = 0;
while (scanner.hasNextDouble()) {
polynomialCoefficients.add(scanner.nextDouble());
amountCoefficients++;
}
String in = scanner.next();
double x1 = scanner.nextDouble();
double x2 = scanner.nextDouble();
//call method f to determine the polynomial function
int i = 0;
for (i = 0; i < amountCoefficients; i++) {
f
}
//call method findaroot to determine the root
//print result
}
}
public static double f(double x) {
//function of which a root is to be found
}
公共级国际刑警组织{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
//获取用户输入(多项式系数和区间值x1和x2)
ArrayList多项式效率=新ArrayList();
int数量系数=0;
while(scanner.hasNextDouble()){
polynomialefficients.add(scanner.nextDouble());
数量系数++;
}
字符串in=scanner.next();
double x1=scanner.nextDouble();
double x2=scanner.nextDouble();
//调用方法f来确定多项式函数
int i=0;
对于(i=0;i<数量系数;i++){
F
}
//调用findaroot方法来确定根
//打印结果
}
}
公共静态双f(双x){
//要找到其根的函数
}
您可以创建一个采用列表或数组的方法。然后该方法可以使用List.size()和array.length来处理每个对象
public static void main(String[] args){
ArrayList<Double> polynomialCoefficients = new ArrayList<Double>();
// get data
...
process(polynomialCoefficients);
}
public void process(List<Double> coefficients){
for(int i = 0; i < coefficients.size(); i ++){
System.out.println("Element " + i + ": " + coefficients.get(i));
}
}
publicstaticvoidmain(字符串[]args){
ArrayList多项式效率=新ArrayList();
//获取数据
...
过程(多项式效率);
}
公共无效流程(列出系数){
对于(int i=0;i
您可以使用接收任意数量的参数,尽管这些参数将被转换为。这是通过以下代码实现的:
public void printOneEachLine(String... parameters) {
for (String parameter : parameters) {
System.out.println(parameter);
}
}
您可以通过以下方式进行调用:
printOneEachLine("msg1", "msg2");
printOneEachLine("msg3", "msg4", "msg5", "msg6");
谢谢你的解决方案!