简体   繁体   English

在方法之间传递数组并在main中调用它们

[英]Passing arrays between methods and calling them in main

I want to pass an array from one method to another and call that method on the array. 我想将数组从一个方法传递到另一个方法,然后在数组上调用该方法。 However, it shows where increaseCost() is not applicable for arguments. 但是,它显示了increaseCost()不适用于参数的地方。 How would I fix this code? 我将如何解决此代码?

I'm trying to pass double[] price to increaseCost() : 我正在尝试通过double[] priceincreaseCost()

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);
    }
}

In your main method you have to get the prices from the initialize() method: 在您的主要方法中,您必须从initialize()方法获取prices

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

And in the initialize method you have to return the prices array: 在initialize方法中,您必须返回prices数组:

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

A few other things to remark: 其他要注意的事项:

  • maybe rename your price variable to prices as it is a list of prices 也许将price变量重命名为prices因为它是价格列表
  • you are mixing a lot of concerns (reading, printing, keeping state, etc.), normally you should keep those things separated 您混合了很多顾虑(阅读,打印,保持状态等),通常应将这些内容分开
  • reading in the names of the groceries and the prices should probably be a seperate concern and reside in an own method, you lose track of the names since you are not returning them in any way 阅读食品杂货的名称和价格可能应该单独考虑,并且采用自己的方法,由于您没有以任何方式退货,因此您会失去对名称的了解
  • the for loop is strangely formatted, normally the full loop goes on one line for循环的格式很奇怪,通常整个循环在一行上进行

There are other things, but it's probably just a lab quiz. 还有其他事情,但这可能只是实验室测验。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM