为什么这段代码编译运行后的输出结果为13



```java
for(int i=0;i<6;i++){
  int k=++i;
  while(k<5){
  System.out.print(i);
    break;
}
}


i++和++i都是加一,i++是执行完加一,i++是执行前加一,循环中就是+1输出i=1,此次循环结束再+1,然后再进行下一个循环,++i后结果为3<5,满足条件再输出3,此时循环结束+1,i=4,进入下一次循环,在执行++i以后i=5不满足i<5不输出。然后结束循环。

第一次for循环进去,k = ++i,k = 1,i = 1,满足条件进入while,输出1,第二次for循环,k = ++i, k = 3,i = 3,满足条件输出3。后面的结果都不满足条件了,也就不会进入while了,所以最后输出结果为13,是两次输出的结果。