FOR循环后,输出sum值,怎么变成sum=0?

zhangyuan850 2016-10-26 10:50:43
int sum=0;
for(int i=0,sum=1;i<4;i++)
for(int j=0;j<i;j++)
sum+=1;
cout<<"sum="<<sum;
在循环中sum=7,怎么结束循环后,确是sum=0?
请朋友们给解释一下!谢谢
...全文
297 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Poopaye 2016-10-26
  • 打赏
  • 举报
回复
因为你定义了2个sum 而循环内的sum+=1是for循环开始定义的sum 输出的sum是第一行的sum 可以这样理解
int  sum1=0;
for(int i=0,sum2=1;i<4;i++)
for(int j=0;j<i;j++)
sum2+=1;   
cout<<"sum="<<sum1;
zhangyuan850 2016-10-26
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
你确认这是C#? 你定义了2个sum,在一个方法内定义是无法编译通过
------------------------------- 抱歉,书里的题目就是这样,书中问sum=0是为什么?
zhangyuan850 2016-10-26
  • 打赏
  • 举报
回复
引用 1 楼 Chinajiyong 的回复:
删掉第一个for里面的sum=1

int  sum=1;
for(int i=0;i<4;i++)
for(int j=0;j<i;j++)
sum+=1;	  
cout<<"sum="<<sum;
-------------------------------------- 抱歉,书里的题目就是这样,书中问是为什么?
  • 打赏
  • 举报
回复
你确认这是C#? 你定义了2个sum,在一个方法内定义是无法编译通过
EnForGrass 2016-10-26
  • 打赏
  • 举报
回复
删掉第一个for里面的sum=1

int  sum=1;
for(int i=0;i<4;i++)
for(int j=0;j<i;j++)
sum+=1;	  
cout<<"sum="<<sum;
Poopaye 2016-10-26
  • 打赏
  • 举报
回复
引用 6 楼 zhangyuan850 的回复:
你 的意思是:for里定义的第二个sum,其只能在for里起作用,出了循环就不起作用了,看来是美国的警察到了中国就不是警察了。
这叫变量的作用域,任何一本编程的教科书都会讲到这个问题,比喻不够恰当。
zhangyuan850 2016-10-26
  • 打赏
  • 举报
回复
引用 5 楼 shingoscar 的回复:
因为你定义了2个sum 而循环内的sum+=1是for循环开始定义的sum 输出的sum是第一行的sum 可以这样理解
int  sum1=0;
for(int i=0,sum2=1;i<4;i++)
for(int j=0;j<i;j++)
sum2+=1;   
cout<<"sum="<<sum1;
----------------------------------------------------------- 你 的意思是:for里定义的第二个sum,其只能在for里起作用,出了循环就不起作用了,看来是美国的警察到了中国就不是警察了。

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧