在方法之间传递数组并在主

时间:2016-12-01 18:13:04

标签: java arrays

我想将一个数组从一个方法传递给另一个方法并在数组上调用该方法。但是,它显示increaseCost()不适用于参数的位置。我该如何修复此代码?

我正在尝试将double[] price传递给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);
    }
}

1 个答案:

答案 0 :(得分:1)

在您的主要方法中,您必须从prices方法获取initialize()

public static void main(String[] args) {
    double[] prices = initialize();
    increaseCost(prices);
}

在initialize方法中,您必须返回prices数组:

static double[] initialize() {
   //all your code
   ...
   return price;
}

其他一些要评论的内容:

  • 可能会将您的price变量重命名为prices,因为它是一个价格列表
  • 你混淆了许多问题(阅读,打印,保持状态等),通常你应该将这些东西分开
  • 阅读杂货的名称和价格应该是一个单独的问题,并且存在于一个自己的方法中,你忘记了名字,因为你没有以任何方式返回它们
  • for循环格式奇怪,通常整个循环在一行

还有其他的东西,但它可能只是一个实验室测验。