请大神帮忙解释一下,它们怎么最后是32?

int j=2;
for(int i=7;i>0;i-=2)
   j*=2;

慕盖茨6544812
浏览 2110回答 3
3回答

莫名所以

因为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);//我把每一次循环的结果都算出来了 }

留得枯荷听雨声lyx

初始值 i=7;第一次:j*2=4   i-2=5;第二次:j*2=8  i-2=3;第三次  J*2=16  i-2=1;第四次 j*2=32  i-2=-1第五次条件判断:i=-1<0不符合条件退出循环

慕侠0844227

i为7.5.3.1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java