java - 为什么在 for 循环的迭代部分将前增量更改为后增量不会产生影响?

标签 java post-increment

为什么会这样

 int x = 2;
    for (int y =2; y>0;y--){
        System.out.println(x + " "+ y + " ");
        x++;
    }

打印和这个一样吗?

 int x = 2;
        for (int y =2; y>0;--y){
            System.out.println(x + " "+ y + " ");
            x++;
        }

据我所知,后增量首先“按原样”使用,然后递增。都是先添加后使用的前置增量。为什么这不适用于 for 循环的主体?

最佳答案

循环相当于:

int x = 2;
{
   int y = 2;
   while (y > 0)
   {
      System.out.println(x + " "+ y + " ");
      x++;
      y--; // or --y;
   }
}

从阅读该代码可以看出,在 for 循环的第三部分使用 post 或 pre 减量运算符并不重要。

更一般地说,任何形式的 for 循环:

for (ForInit ; Expression ; ForUpdate)
    forLoopBody();

完全等同于while循环:

{
    ForInit;
    while (Expression) {
        forLoopBody();
        ForUpdate;
    }
}

for 循环更紧凑,因此更容易解析这种常见的习惯用法。

关于java - 为什么在 for 循环的迭代部分将前增量更改为后增量不会产生影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1918196/

相关文章:

java - 父类(super class)中的 protected 方法在不同包中的子类中是否可见?

C# 后增量

java - 如何使 JSP 函数仅在调用时运行?

java - 适用于Android的新Gradle插件中的编译避免

java - 如何在具有多个 JTextField 的 Java Swing JFrame 实例中获取按键事件?

java - Netbeans 9 - 打印 Unicode 字符

c++ - Make++o++ 提示具有用户定义的前置和后置增量运算符的类型

java - Java 中的后置增量

java - 在 Java 中,++x 是否比 x++ 更高效?

c++ - C++ 中的一元运算符重载特例