Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在另一个数组循环中引用数组_Java_Arrays_For Loop - Fatal编程技术网

Java 在另一个数组循环中引用数组

Java 在另一个数组循环中引用数组,java,arrays,for-loop,Java,Arrays,For Loop,我试图在一个for循环中使用一个数组的项,该for循环正在另一个数组中循环。例如,我想在询问每个项目的价格时显示项目名称(已经存在的数组)。“第[i]项的价格是多少”。我认为在这种情况下不能使用item[I]。我也尝试过使用get方法和计数器变量,但肯定是做错了什么 readPrice部分不起作用-特别是项[i]。有没有人建议如何在不使用项目[i]的情况下完成同样的事情 我是java新手,如果这是一个显而易见的答案,我很抱歉,但我真的非常感谢您的帮助 这是我的密码: private String

我试图在一个for循环中使用一个数组的项,该for循环正在另一个数组中循环。例如,我想在询问每个项目的价格时显示项目名称(已经存在的数组)。“第[i]项的价格是多少”。我认为在这种情况下不能使用item[I]。我也尝试过使用get方法和计数器变量,但肯定是做错了什么

readPrice部分不起作用-特别是项[i]。有没有人建议如何在不使用项目[i]的情况下完成同样的事情

我是java新手,如果这是一个显而易见的答案,我很抱歉,但我真的非常感谢您的帮助

这是我的密码:

private String[] items;
private int[] priority;    
private double[] price;

public void readInput()
{
    Scanner keyboard = new Scanner(System.in);
    System.out.println("You will need to enter seven shopping items.");

    items = new String[7];

    for (int i = 0; i < items.length; i++)
    {
        System.out.println("Enter an item: ");
        items[i] = keyboard.nextLine();   
    }

}

**public void readPrice()**
{
    price = new double[7];
    Scanner keyboard = new Scanner(System.in);
    for(int i = 0; i < price.length; i++)
    {

        System.out.println("Enter the price for " + **items[i]**);
        price[i] = keyboard.nextDouble();

    }

}
私有字符串[]项;
私有int[]优先级;
私人双[]价格;
public void readInput()
{
扫描仪键盘=新扫描仪(System.in);
System.out.println(“您需要输入七个购物项目”);
items=新字符串[7];
对于(int i=0;i
好吧,这是给你的答案。有两种主要方法:将对象
items
作为参数传递,或使其成为全局对象

全局变量方法

对于全局方法,您似乎已经在这样做了,首先将对象声明为类的字段:

class MyClass
{
    private String[] items = new String[7];

    //...Rest of class goes here
}
现在,您可以根据需要从两种方法访问它

public readInput()
{
    // Add stuff to items
    items[0] = "hi";
}
public readPrice()
{
    // Read from items
    System.out.println(items[0]);
}
方法参数法

现在,如果您希望将对象从一个方法传递到另一个方法,但不希望任何其他方法都可以访问它,则可以将其设置为如下参数:

public readPrice(String[] items)
{
    // Read from items
    System.out.println(items[0]);
}
private String[] items;
private int[] priority;    
private double[] price;

public void readInput()
{
    Scanner keyboard = new Scanner(System.in);
    System.out.println("You will need to enter seven shopping items.");

    items = new String[7];

    for (int i = 0; i < items.length; i++)
    {
        System.out.println("Enter an item: ");
        items[i] = keyboard.nextLine();   
    }

}

**public void readPrice()**
{
    price = new double[7];
    Scanner keyboard = new Scanner(System.in);
    for(int i = 0; i < price.length; i++)
    {

        System.out.println("Enter the price for " + **items[i]**);
        price[i] = keyboard.nextDouble();

    }

    public void printdata(){
    for(int I=0; I<7; I++){
       System.out.println("item name: " +item[i] +" price: "+price[i])

    }

    }
然后可以从其他地方调用该方法,传递对象类型的特定实例

public inputPrice()
{
    String[] items = new String[7];
    // Add stuff to items
    items[0] = "hi";
    this.readPrice(items);
}

如果要多次调用单个方法,但要使其作用于不同的输入,则传递参数尤其有用。

您可以创建一个类项

public class Item {
    String name;
    double price;

    public void setName(String name) {
        this.name = name;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getName() {
        return name;
    }

    public double getPrice() {
        return price;
    }

    @Override
    public String toString() {
        return "Item{" + "name=" + name + ", price=" + price + '}';
    }

}
在创建类Item的对象之后

    public class TestPaper {

    public static void main(String[] args) {
        Item item;
        Item[] itemTable = new Item[7];
        ArrayList<Item> itemlist = new ArrayList<>();
        for (int i = 0; i < 7; i++) {
            item = new Item();
            //set value
            item.setName("item1");
            item.setPrice(200);
            //store the object to a table or an arraylist
            itemTable[i] = item;
            itemlist.add(item);
        }

        for (Item temp : itemTable) {
            System.out.println(temp.toString());
        }

    }

}
公共类试卷{
公共静态void main(字符串[]args){
项目;
Item[]itemTable=新项目[7];
ArrayList itemlist=新建ArrayList();
对于(int i=0;i<7;i++){
项目=新项目();
//设定值
item.setName(“item1”);
项目.固定价格(200);
//将对象存储到表或arraylist
itemTable[i]=项目;
项目列表。添加(项目);
}
用于(项目温度:项目表){
System.out.println(temp.toString());
}
}
}
这是更好的解决方案,但我会用你的代码回答你

您有7个项目,因此可以按如下方式打印项目:

public readPrice(String[] items)
{
    // Read from items
    System.out.println(items[0]);
}
private String[] items;
private int[] priority;    
private double[] price;

public void readInput()
{
    Scanner keyboard = new Scanner(System.in);
    System.out.println("You will need to enter seven shopping items.");

    items = new String[7];

    for (int i = 0; i < items.length; i++)
    {
        System.out.println("Enter an item: ");
        items[i] = keyboard.nextLine();   
    }

}

**public void readPrice()**
{
    price = new double[7];
    Scanner keyboard = new Scanner(System.in);
    for(int i = 0; i < price.length; i++)
    {

        System.out.println("Enter the price for " + **items[i]**);
        price[i] = keyboard.nextDouble();

    }

    public void printdata(){
    for(int I=0; I<7; I++){
       System.out.println("item name: " +item[i] +" price: "+price[i])

    }

    }
私有字符串[]项;
私有int[]优先级;
私人双[]价格;
public void readInput()
{
扫描仪键盘=新扫描仪(System.in);
System.out.println(“您需要输入七个购物项目”);
items=新字符串[7];
对于(int i=0;i对于(int I=0;I请提供发生错误的堆栈跟踪,以使每个人都满意。我个人将创建一个地图,为项目分配价格

代码

封装测试;
导入java.util.HashMap;
导入java.util.Map;
导入java.util.Map.Entry;
导入java.util.Scanner;
公共类项目{
私有整数项长度=10;
私有映射项=新HashMap();
公共物品(){
System.out.println(“请填写以下详细信息:”);
对于(int i=0;i
输出

请填写以下详情: 输入项目名称: 鞋 输入鞋子的价格: 20 输入项目名称: 衬衫 输入衬衫的价格: 20 输入项目名称: 项链 输入项链的价格: 50 输入项目名称: 手镯 输入手镯的价格: 30 输入项目名称: 袜子 输入袜子的价格: 5. 输入项目名称: 人字拖鞋 输入人字拖的价格: 10 输入项目名称: 苏打汽水 输入苏打水的价格: 2. 输入项目名称: 钻石 输入钻石的价格: 20000 输入项目名称: 奇怪的东西 输入商品的价格: 99999 输入项目名称: 另一件怪事 输入另一个奇怪项目的价格: 99999 以下是您的物品: +------------------------+ |项目|价格| |项链| 50.0 | |另一个奇怪的项目| 99999.0 | |衬衫| 20.0 | |手镯| 30.0 | |钻石| 20000.0 | |W