我想将一个数组从一个方法传递到另一个方法,并在数组上调用该方法。但是,它显示了 increaseCost()
不适用于参数的情况。我该如何修复此代码?
我正在尝试将double[]价格
传递给increaseCost()
:
import java.util.*;
public class LabQuiz3 {
public static void main(String[] args) {
initialize();
increaseCost();
}
static void initialize() {
String[] name=new String[10];
System.out.println("Name of the grocery? ");
Scanner scan=new Scanner(System.in);
for (int i=0; i < 10; i++) {
String a = scan.next();
name[i]=a;
}
scan.close();
double[] price=new double[10];
System.out.println("Price of each grocery? ");
Scanner sc=new Scanner(System.in);
for (int j=0; j < 10; j++) {
double b=sc.nextDouble();
price[j]=b;
}
sc.close();
}
static void increaseCost(double[] price) {
for (int c=0; c <10; c++) {
double k=price[c] * .07;
price[c]=k;
}
System.out.println(price);
}
}
最佳答案
在主方法中,您必须从 initialize()
方法获取prices
:
public static void main(String[] args) {
double[] prices = initialize();
increaseCost(prices);
}
在初始化方法中,您必须返回 prices
数组:
static double[] initialize() {
//all your code
...
return price;
}
还有一些需要注意的事项:
- 也许可以将您的
price
变量重命名为prices
,因为它是价格列表 - 您正在混合很多关注点(读取、打印、保持状态等),通常您应该将这些事情分开
- 读取杂货的名称和价格可能应该是一个单独的问题,并且存在于自己的方法中,您会忘记这些名称,因为您不会以任何方式返回它们
- for 循环的格式很奇怪,通常整个循环只占一行
还有其他事情,但这可能只是一个实验室测验。
关于java - 在方法之间传递数组并在 main 中调用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40917613/