for循环中后增量和preincrement的输出相同

时间:2015-11-12 05:22:08

标签: java

这是后增量上的两个java程序和在for循环上使用的preincrement运算符.both产生相同的输出。然后在for循环上使用preincrement和postincrement运算符之间的区别是什么。

public class Printi{
public static void main(String args[])
  {
  int i=0;
  for(i=0;i<5;++i){
  System.out.println(i);
  }

  }
}

产生输出

C:\fx>java Printi
0
1
2
3
4

这个for循环中的postincrement运算符也产生相同的输出

public class Printj{
public static void main(String args[])
  {
  int j=0;
  for(j=0;j<5;j++){
  System.out.println(j);
  }

  }
}

C:\fx>java Printj
0
1
2
3
4

3 个答案:

答案 0 :(得分:0)

因为您不显示增量表达式返回的值)。要查看差异,请比较

for(int j=0;j<5;){
    System.out.println(j++);
}

for(int j=0;j<5;){
    System.out.println(++j);
}

for循环语法的所有三个部分都是可选的。

答案 1 :(得分:0)

在for循环中,您构建它的方式没有区别。当&#34; j&#34;在循环内部打印出来,它已经过预先评估或后评估。

关于评估前或评估的唯一有趣的时间是正确的,当你实际将该评估应用于变量时,这就是@Elliot Frish在他的答案中所显示的。

评估结束后,代码肯定不会发现差异。

当你在while循环中构造它时,这样的东西可能会产生更大的不同。

答案 2 :(得分:0)

x++++x之间的唯一区别只能在包含许多运算符和操作数的语句中显示。

考虑一下:

int x = 10;
int y = ++x;

x首先以前缀++递增。然后将递增的x分配给y。所以在这段代码之后,x = 11,y = 11。

如果我将其更改为:

int x = 10;
int y = x++;

x首先被分配y,因为后缀++已执行 last 。将x赋给y后,x增加。所以在这段代码之后,x = 11,y = 10。

这就是区别。在您的示例中,您只有一个操作:++x。因为只有一个,所以无法显示操作的顺序!