为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕盖茨6544812 2017-08-01 10:03:58
int j=2; for(int i=7;i>0;i-=2)    j*=2;
查看完整描述

3 回答

已采纳
?
莫名所以

TA贡献12条经验 获得超9个赞

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


查看完整回答
2 反对 回复 2017-08-01
?
留得枯荷听雨声lyx

TA贡献51条经验 获得超16个赞

初始值 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不符合条件退出循环

查看完整回答
1 反对 回复 2017-08-01
?
慕侠0844227

TA贡献8条经验 获得超1个赞

i为7.5.3.1

查看完整回答
反对 回复 2017-08-01
  • 3 回答
  • 1 关注
  • 2045 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信