每次循环迭代时更改分配的变量

时间:2013-07-23 20:51:40

标签: java oop object for-loop

我正在尝试构建一个允许用户输入对象长度和宽度的程序,但是我选择了多次(我会构建更多代码来选择循环的次数)。我每次循环迭代时都会遇到一些问题,想知道如何获取输入并构造一个对象。谢谢!

public static void main(String[] args) 
{
    Scanner console = new Scanner(System.in);

    for (int i = 1; i <= 2; i++)
    {
        System.out.println("Enter length" + i + ": ");
        int length i = console.nextInt();

        System.out.println("Enter length" + i + ": ");
        int width i = console.nextInt();

        OBJECT instance1 = new OBJECT(length1, width1);
    }


}

2 个答案:

答案 0 :(得分:1)

您可以使用ArrayList / LinkedList,如果您的条目很大,那么只能使用LinkedList。

Scanner console = new Scanner(System.in);
System.out.println("Enter how many records you want: ");
int j = console.nextInt(); //"Loop will run "+ j +" times"
List<ObjectName> objectList = new ArrayList<ObjectName>();
int length = 0;
int width = 0;

for (int i = 1; i <= j; i++)
{
  System.out.println("Enter length" + i + ": ");
  length = console.nextInt();
  System.out.println("Enter width" + i + ": ");
  width = console.nextInt();
  ObjectName instance1 = new ObjectName(length, width);
  objectList.add(instance1);
}

答案 1 :(得分:0)

您需要了解如何使用Collections API,尤其是ListLinkedListArrayList。所以你的代码将成为:

public static void main(String[] args) {
    final Scanner console = new Scanner(System.in);

    final List<Area> objectList = new ArrayList<Area>();
    for (int i = 0; i < 2; i++) {
        System.out.println("Enter length" + (i + 1) + ": ");
        final int length = console.nextInt();

        System.out.println("Enter width" + (i + 1) + ": ");
        final int width = console.nextInt();

        final Area instance = new Area(length, width);
        objectList.add(instance);
    }
}

我在这里选择ArrayList因为它通常是两者中表现较好的一个(但是对于不需要任何一个功能的相对较小的列表,两者都可以)。