莫名所以
因为for循环初始化值i=7, 判断条件语句是i>0, 每循环一次i=i-2;直到i=1; 再减下去 i就等于-1了, 因为条件句是i>0所以,是false,不会再执行j*=2;(在这里说明一下j*=2 其实就是j=j*2 , i-=2 就是i=i-2)for循环前面定义了变量,int j=2;第1次循环: i=7 判断大于0,正确执行 运行了1次 j=2*2=4; 结果=4 会赋值前面定义的变量 j第2次循环: i=7-2=5 判断大于0 ,正确执行 运行了1次 j=4*2=8 结果=8会赋值前面定义的变量 j第3次循环: i=5-2=3 判断大于0 ,正确执行 运行了1次 j=8*2=16 结果=16会赋值前面定义的变量 j第4次循环: i=3-2=1 判断大于0,正确执行 运行了1次 j=8*2=32 结果=32会赋值前面定义的变量 j第5次循环: i=1-2=-1 判断小于0, 返回false ,错误所以不执行大括号中的语句最后输出j=32 int count =0;//这个count 是计算for循环的次数,这个可以不关注
int j =2;
for (int i = 7; i > 0; i-=2) {
count++;
System.out.println("第"+count +"次循环i=" +i);
j*=2; //这个就是 j=j*2 的意思
System.out.println("j=" + j);//我把每一次循环的结果都算出来了
}