【问题标题】:Declare a new variable for each iteration in a for loop在 for 循环中为每次迭代声明一个新变量
【发布时间】:2014-12-01 10:06:36
【问题描述】:

如何在 for 循环的每次迭代中声明一个新变量?

例如:

for (int i = 1; i <= 4; i++) {
    int var1 = i; // in the second iteration, I want a variable var2 set to i, etc.
}

循环完成后,我想要4个变量,分别命名为var1var2var3var4,分别设置为123和@987654329 @,分别是(当我在上面的代码中将var1 设置为i 时,我实际上将其设置为1,因为这是整个特定迭代中i 的值)。

【问题讨论】:

  • Java 中的声明不是这样工作的;它们代码,它们不是代码创建的。
  • 我明白了,所以我必须使用数组来代替吗?
  • 您可以将其临时添加到列表或数组中。
  • 这可以通过 C 宏实现。

标签: java loops variables for-loop variable-declaration


【解决方案1】:

使用数组、列表、映射或其他类型的数据结构。

例如

int[] arr = new int[4];
for (int i = 1; i <= 4; i++) {    // well, we usually write in 0-based manner...
    arr[i-1] = i;
}
// if you want to get n-th value, just do   arr[n-1]


List<Integer> list = new ArrayList<Integer>();
for (int i = 1; i <= 4; i++) {
    list.add(i);
}
// if you want to get n-th value, just do   list.get(n-1)



Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int i = 1; i <= 4; i++) {
    map.put(i, i);
}
// if you want to get n-th value, just do   map.get(n)

类似的东西。

【讨论】:

    【解决方案2】:

    要么使用四个变量,要么使用array。这是数组的替代方案:

    int arr[] = new int[5];
    for (int i = 1; i <= 4; i++) {
       arr[i] = i;
    }
    

    【讨论】:

    • 我相信 OP 要求提供任何数量的变量。这不会使哈希图或列表更好一点吗?
    • @T.Woody 当然是的,但是 OP 要求 4 个对象,所以我想到了固定大小的数组。
    • OP 说“例如”:)
    猜你喜欢
    • 2017-02-09
    • 2018-04-07
    • 2018-05-23
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多