i-- 是在执行操作后减1,
--j是执行操作前减1既
第一次 i-->3 是6>3 为true j=8
第二次 i-->3 是5>3 为true j=7
第三次 i-->3 是4>3 为true j=6
第四次 i-->3 是3>3 为false 不进入判断, j不操作,所以j为6
public class WhileXunHuan {
public static void main(String[] args) {
int j=9,i=6;
while(i-->3){
//i-->3是循环条件,意思就是当(i--)大于3时,执行while循环体内代码
//i--和--i不一样,前者是后减减,例如第一次进入循环体时,i=6,然后i--的值也是6,如果是--i那么值就是5
//这就是先减减和后减减的区别,但是无论先减减还是后减减,执行完后,i的值都会变的(及减1)
--j;
System.out.print(i+",");
System.out.println(j);
}
}
}
输出结果:
5,8
4,7
3,6
没有输出J的语句吗?在while循环里输出还是循环外?
i-- 就是i=i-1也就是每次循环时,i先减1,再与3比较。
如果j的值是在while循环里输出,那么没循环一次,打出一个J值,知道循环结束。
i--是先取i的值,然后再修改i的值(i=i-1);
--j是先修改j的值(j=j-1),然后再取j的值;
所以i-->3的意思是先取i的值和3比较,然后修改i的值;
由此可以知道,当运行完程序后 j=6
i-- 是一个判断条件(i=i-1)
初始:i=6
执行这句的时候 :while(i-- > 3) 先看i的值是不是>3,再将i-1
其他依次类推
j=6,i-->3就是先比较i和3的大小,再让i减去1