一道C#小程序题,有一个地方没明白!望各位大侠帮忙!

classProgram{staticvoidMain(string[]args){intsum=0,sum1=0;for(intj=1;j<=3;j++){for(in... class Program
{
static void Main(string[] args)
{
int sum = 0, sum1 = 0;
for (int j = 1; j <= 3; j++)
{
for (int i = 1; i <= j; i++)
{
sum += i;
}

sum1 += sum;
}

Console.WriteLine("{0},{1}" ,sum,sum1);
Console.ReadKey();
}
}
这个程序题的结果是sum=10;sum1=15,请问是怎么得出来的 ,结果应该是sum=6,sum1=10才对啊,有点不懂!!麻烦大伙啦!
展开
 我来答
匿名用户
2013-07-30
展开全部
j==1 的时候
  i==1
    sum=1
 
j==2 的时候
  i==1  
    sum=1+1 = 2
  i==2  
    sum=1+1 = 2+2 = 4

j==3 的时候
  i==1  
    sum=4 + 1 = 5
  i==2  
    sum=4 + 1 = 5 + 2 = 7
  i==3  
    sum=4 + 1 = 5 + 2 = 7 + 3 = 10

 sum1 = 1 + 4 + 10 = 15          

更多追问追答
追问
您好,再麻烦您下,当j==2 的时候i的值不是已经自加到2了吗?为什么还要算一遍i==1呢?
追答
j 等于2的时候,要重复下面的循环
for (int i = 1; i <= j; i++)
上面这句 i 又一次被赋值为 1 了

所以就出现了
j==2 的时候
i==1
sum=1+1 = 2
i==2
sum=1+1 = 2+2 = 4
IT孤鹜
2013-07-30 · TA获得超过4198个赞
知道大有可为答主
回答量:3960
采纳率:71%
帮助的人:3600万
展开全部
当 j=1
i=1到 1
sum=1 sum1=1
当 j=2
i=1到 2
sum=1+3=4 sum1=5
当 j=3
i=1到 3
sum=4+6=10 sum1=10+5=15

注意 sum+=i; 他会累加所以得i
实际就是
sum=1+1+2+1+2+3=10
追问
请在追问您一下,当 j=2 ,i=1到 2时,sum不是应该等于(1+2=3)吗?怎么能是4呢?
追答
j=1的时候的sum=1 还保留着啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chen307418756
2013-07-30
知道答主
回答量:10
采纳率:0%
帮助的人:1.6万
展开全部
首先,sum 与 sum1是这个函数的局部变量,每次for中的改动都会记录到下一次
第一个for j=1 通过 for i sum=1 第二个 for j=2 通过 for i sum 等于上一个 1 加上这次 1+2
结果是4 同理 当j=3时,sum=4+1+2+3=10;那么sum1=1+4+10=15
追问
还想麻烦您下for (int i = 1; i <= j; i++)中i++起着什么作用呢?不应该是每次循环后i的值都自增1吗?就是说当j=2的时候应该跳过i=1这道程序了,而是i直接从2开始算起才对啊?
追答
每次j 递增时,i从1开始
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式