【问题标题】:Java - Expected output after a loop printing array [duplicate]Java - 循环打印数组后的预期输出
【发布时间】:2016-05-11 12:15:28
【问题描述】:

我已经看到了这个问题(来自多项选择)“以下程序的输出是什么”:

class array_output {
    public static void main(String args[]) 
    {
        int array_variable [] = new int[10];

        for (int i = 0; i < 10; ++i) {
            array_variable[i] = i/2;
            array_variable[i]++;

            System.out.print(array_variable[i] + " ");
            i++;
        }
    } 
}

预期的输出是:

1 2 3 4 5

我很清楚i 的值增加了两次,第一次在循环体中,在最后一行。 但我真的不明白array_variable[i]++; 这条线在做什么。 有什么建议? 提前感谢您回答这个新手问题!

【问题讨论】:

  • something++ 可以阅读something = something + 1

标签: java arrays for-loop


【解决方案1】:

后置递增和递减运算符在更改变量值之前返回变量的值。考虑以下几点:

int anInt = 0;
System.out.println("anInt: " + anInt);
// anInt: 0
System.out.println("anInt: " + anInt++);
// anInt: 0
System.out.println("anInt: " + anInt);
// anInt: 1
System.out.println("anInt: " + ++anInt);
// anInt: 2
System.out.println("anInt: " + anInt);
// anInt: 2

所以基本上,anInt++ 在递增之前返回anInt 的值。 ++anInt 在返回(新增加的)值之前增加 anInt 的值。

【讨论】:

    【解决方案2】:

    array_variable[i]++; 将存储在array_variable[i] 中的值加一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多