A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭佳佳 中级黑马   /  2012-8-3 08:51  /  2699 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

static void Main(string[] args)
        {
            int a=1, sum=0;
           if (a<101)
               a++;
           
           sum = sum+a;

            
            Console.WriteLine("1到100的和为{0}",sum);
            Console.ReadKey();

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

16 个回复

倒序浏览

static void Main(string[] args)
{
       int a=1, sum=0;
       if (a<101)           //此时a是1,小于101,满足if条件,执行if语句a++
             a++;            //a++  后,a变为2,由于没有循环语句给a递增,程序顺序往下执行     
        sum = sum+a;   //sum的值是2程序顺序往下执行,         
        Console.WriteLine("1到100的和为{0}",sum);//输出sum的值为2
        Console.ReadKey();
}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
你用的if,只是a自加到2然后又加了一个为0的sum  所以sum=2
int sum=0;
for(int i=1;i<101;i++){
    sum+=i;
}
Console.WriteLine("1到100的和为{0}",sum);
            Console.ReadKey();

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
sum+=i;等价于 sum=sum+i;
回复 使用道具 举报
要弄清楚if与for的区别,if只是判断,for是判断加循环。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
你需要好好看看基础视频了, if只是判断,没有循环的功能  所以你的代码只执行了一次

在你的代码基础上最简单的改法


static void Main(string[] args)
{
            int a=1, sum=0;
           while (a<101)
            {  
                a++;
                sum = sum+a;
             }
            Console.WriteLine("1到100的和为{0}",sum);
            Console.ReadKey();
}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
这里你需要将if改为for即可

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
这是我给楼主做的修改

3333333.jpg (15.61 KB, 下载次数: 57)

修改

修改

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
楼上说的很对,无论是while还是For循环都是可以的,但你直接用if作一下判断根本就没循环,也就没办法累加

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
           用do-while循环也可以!只不过有点麻烦了
            int i = 1;
            int sum = 0;
            do
            {
                sum += i;
                i++;
               
            } while (i <=100);
            Console.WriteLine("1-100整数和为:{0}",sum);
            Console.ReadKey();

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
你的代码没有使用循环语句 if是判断语句  for   while    do while  是循环语句,只需加一个while(a<101){a++; sum+=a;}即可

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
因为执行到sum=sum+a;他顺序执行没有循环

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 赵刘滨 于 2012-8-5 19:35 编辑

int a=1,sum=0;
for(int i=1;i<101;1++)
{
   a++;
   sum+=a;
}
Console.WriteLine(sum);
  Console.Read();

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
if    是条件判断语句,不是循环。所以 得不到1到100 和,如果if 改为 while 差不多。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
if 只判断;for 是判断加循环;
另外,不管是if ,还是for,后面最好习惯加 {} 括起来。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
我说看着别留,1、if是判断,for才是循环。2、没括号看着太乱。
回复 使用道具 举报
已知范围的需要循环执行的语句,我们一般都用for循环来实现的,你的这个我们也可以用whlie和do /while语句来实现。。  
但是已知范围,用for会方便一点的。。。
int sum=0;
for(int  i=0;i<100;i++)
{
sum+=i;  //这样是每次都进行累加,直到循环结束
}
console.writeline(sum);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马