黑马程序员技术交流社区

标题: c#中循环语句区别 [打印本页]

作者: xiabingxiejiang    时间: 2013-8-6 11:01
标题: c#中循环语句区别
while   do    while     for


作者: wang100753    时间: 2013-8-6 11:22
while :它用来实现"当型"循环结构。其一般形式如下:
WHILE(表达式)语句
当表达式为非0值时执行WHILE语句中的内嵌语句。其特点是:先判断表达式,后执行语句。

do...while :第一次执行一个语句块,然后重复循环的执行该语句块,
直到条件表达式等于 false

for:是用来表示循环次数已知的情况,它的使用格式为:for( 表达式一; 表达式二; 表达式三) 循环体语句
作者: 范国伟    时间: 2013-8-6 11:26
你是说的while ,do while,与for 这三个循环吗
如果是这三个我感觉还是比较好区分的
  1. while (true)// 循环条件,当循环条件为真时就一直循环
  2.           {
  3.               Console.WriteLine("正在循环");  //循环体 你要做的循环
  4.           }
  5.           do
  6.           {
  7.               // 循环体  不管循环条件是否成立 都先做一次循环
  8.               
  9.           } while (true);// 循环条件  当循环条件为真时继续下一次循环
  10.           for (int i = 0 ; //循环开始时i的值
  11.               i < 10;    //循环条件  当循环条件为真时继续下一次循环
  12.               i++)     //每次循环 i值的增加量
  13.           {
  14.               Console.WriteLine(i);              //循环体
  15.           }
复制代码
不知道对你有没有帮助
作者: 范国伟    时间: 2013-8-6 11:28
没空行不好看清  我再发一遍
  1.           while (true)// 循环条件,当循环条件为真时就一直循环
  2.           {
  3.               Console.WriteLine("正在循环");  //循环体 你要做的循环
  4.           }



  5.           do
  6.           {
  7.               // 循环体  不管循环条件是否成立 都先做一次循环
  8.               
  9.           } while (true);// 循环条件  当循环条件为真时继续下一次循环



  10.           for (int i = 0 ; //循环开始时i的值
  11.               i < 10;    //循环条件  当循环条件为真时继续下一次循环
  12.               i++)     //每次循环 i值的增加量
  13.           {
  14.               Console.WriteLine(i);              //循环体
  15.           }
复制代码

作者: 白天看见了月球    时间: 2013-8-6 11:54
知道循环多少步的用for,用条件来结束的用while  和do    while,while 和do    while的区别是 do while 最少会运行一次,while 可能一次都不会运行
作者: O_o”    时间: 2013-8-6 22:39
for 用于在知道循环多少次的条件下用最好,而while ,do while    是用于判断语句条件来确定循环次数   do while只是不管怎么样都会执行一次的循环       do while能做的事 while一般都能做。  
作者: 高文咪    时间: 2013-8-7 13:57
while:先判断条件是否符合,如果符合才会执行while里的语句;
do......while:不管下面的while条件是否成立,都会至少执行一次do里的语句,直到while条件不符合停止;
for:for循环与while差不了多少,都是条件成立去执行里面的语句;
这几种循环,某种情况下是等价的,看你想要怎么用,用着哪个顺~~~
作者: 庞海瑞    时间: 2013-8-7 14:32
    While 循环语句的语法:
    While(条件)  //条件叫:循环条件
    {
       要循环执行的n条程序;//循环体
    }
执行过程:
判断循环条件为true,则转向2;如果条件为false,则转向3
执行循环体,循环体执行完后,转向1
跳出循环,循环结束
注意:在循环体中,一定要有那么一句话,改变循环条件中的某个变量的值,使循环条件终有那么一天为false

例如:1


            Console.WriteLine("请输入你需要循环的语句?");

            string sme = Console.ReadLine();

            int i = 0;
            while (i < 100)
            {
                Console.WriteLine(sme);
                i++;
            }
            

            






         Console.WriteLine("老师问学生这道题会做了吗?");

            Console.WriteLine("学生回答:yes或no");

            string reply = Console.ReadLine();

            while (reply == "no")
            {
                Console.WriteLine("老师再讲一遍括?");
                Console.WriteLine("你们会了吗?");
                reply = Console.ReadLine();
            }
            Console.WriteLine("{0}放学回家",reply);
            
         列1   
            Console.WriteLine("老师问学生这道台题琣会做了吗?");

            Console.WriteLine("学生回答:y/n");

            string reply = Console.ReadLine();
            int i = 0;
            while (i <= 10&&reply =="n")
            {
                Console.WriteLine("老师再讲一遍括?");
                Console.WriteLine("这道题会了吗?");
                reply = Console.ReadLine();
                i++;
            }
            Console.WriteLine("{0},放学",reply)
例4:
Console.WriteLine("我们培训学院到哪一年培训学员人数将达到20万人?");

            Console.WriteLine("在ú2006年ê培à养?学§员±8万?人?,?每?年ê增?长¤25%");
            double  traiee = 80000;      
            int year = 2006;           
            while (traiee < 200000)
            {
               traiee =traiee *1.25 ;
               year++;
              
              
            }
            Console.WriteLine("{0}年",year);
do - while(条件)
语法:
  do
{循环体;}
While(条件);
执行过程:
  1.执行循环体,执行完循环体转向2
  2.判断条件是否成立,如果条件为true,则转向1,如果条件为false,则转向3
  3.跳出循环,循环结束。
假如循环条件一开始就不成立,对于while循环,一次都不会执行。对于do -while循环体会执行一次。所以,do - while的循环体一般至少会被执行一次。
While先判断,后执行
do - while 先执行,后判断
例如:
            Console.WriteLine("请?输?入?学§生Θ?姓?名?:阰");

            string name = Console.ReadLine();
            while (name != "q")
            {
                Console.WriteLine("请输入学生姓名?");
                name = Console.ReadLine();
            }
            Console.WriteLine(name);
例2:
            
            //第台?四?题            
            int i;
            bool flag = true;
            try
            {
            while (flag )
            {
                Console.WriteLine("请输入一个?数字?");
                 i = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("{0}",i*2);
                flag = true;
            }
            }
            catch
               
            {
                flag = false;
                Console.WriteLine("结束");
            }
            
例3:
            string i;//定¨义一个变量
            int t;//定¨义一个变量
            Console.WriteLine("请输入一个数字?");//提示
            i = Console.ReadLine();//给变量赋值

            while (i != "q")//判断是否变量为q,如果是执行while循-环·
            {
                t = Convert.ToInt32(i);//将变量转换类型í并赋值给t
                Console.WriteLine("{0}",t*2);//输出t的值

                Console.WriteLine("请输入一个数字?");
                i = Console.ReadLine();//给变量赋值



for循环
语法:
for(表达式1;表达式2;表达式3;)
{
  循环体;
}
for循环,一般用于已知循环次数的循环。
一般情况,表达式1用于定义循环变量和对循环变量赋初值
表达式2:循环条件
表达式3:用于改变循环变量的值

执行过程:
第一步:计算表达式1,转向第二步
第二步:计算表达式2(循环条件),如果表达式二的值为true转向第三步,如果表达式二的值为false,转向第五步。
第三步:执行循环体,转向第四步。
第四步:执行表达式三,转向第二步。
第五步:结束程序


例1:
            Console.WriteLine("计?算?1至á100的?和í");
            int sum = 0;
            
            for (int i =1; i <= 100; i++)
            {
                if(i%2==0)
                {
                sum = sum + i;
                }
            }
            Console.WriteLine("sum={0}",sum);
例2:
            
            //计算100到999的水仙花数:a*a*a+b*b*b+c*c*c=cba
            
            Console.WriteLine("找出100到999的水仙花数");
            for (int i = 100; i <= 999;i++ )
            {
                int ge = i % 10;
                int shi = i / 10 % 10;
                int bei = i / 100;
                if (i == ge * ge * ge + shi * shi * shi + bei * bei * bei)
                {
                    Console.WriteLine(i);
                }
            }
            
例3:
            Console.WriteLine("计算出九九乘法表括“);
            for (int i = 1; i <= 9; i++)
            {
                for(int j = 1;j <=9;j++)
                {
                    Console.WriteLine("{0}*{1}={2}",i,j,i*j);

continue
语法:
While(……){
      
  Continue;//继续下一次循环
}

Continue立即结束本次循环,判断循环条件,如果成立,则进入下一次循环,否则退出循环。
Break
语法:while(……){
      break;//  跳出整个循环
  
}
break用于循环中,退出当前循环
例1:
            Console.WriteLine("输?入?一?个?数字?用?来ぁ?计?算?出?其?算?法ぁ?);

            int t = Convert.ToInt32(Console.ReadLine());

            for (int i = 0; i < t; i++)
            {
                for (int j = 0; j < t; j++)
                {
                    if (i + j == t)
                    {
                        Console.WriteLine("{0}+{1}={2}", i, j, i + j );
                    }
                }
例2:



            int  age ;
            int sum=0;
            int pjs=0;
            int i = 0;
            while(i<5)
            {
                Console.WriteLine("请输入你们{0}个人的年龄:",i+1);
                age = Convert.ToInt32(Console.ReadLine());
                sum += age;
                pjs = sum/5;
                i++;            

            continue;
            }
            Console.WriteLine("总和={0},平均年龄={1}", sum, pjs);

比较

  int age = 0;
            int sum = 0;

            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine("请输入第{0}人的年龄?", i + 1);
                try
                {
                    age = Convert.ToInt32(Console.ReadLine());
                    if (age < 0 || age >= 100)
                    {
                        Console.WriteLine("年龄不合法!");
                        break;
                    }
                    sum = sum + age;
                }
                catch
                {
                    Console.WriteLine("你输入的年龄不是数字,错误!程序终止");
                    break;
                }
            }
            Console.WriteLine("你输入的五个人的平均年龄为:{0}",sum / 5);


例4:
            Console.WriteLine("请输入用户名?");
            string userName = Console.ReadLine();
            Console.WriteLine("输入密码?");
            string password = Console.ReadLine();
            while (userName != "admin" && password != "888888")
            {               
                Console.WriteLine("请重新输入?");
                break;
               
            }
                Console.ReadKey();

比较:
string userName, password;
            while (true)
            {
                Console.WriteLine("请输入用户名?");
                userName = Console.ReadLine();
                Console.WriteLine("请输入密码?");
                password = Console.ReadLine();
                if (userName == "admin" && password == "888888")
                {
                    break;
                }
                Console.WriteLine("你输入用户名或密码错误,请重新输入!");

            }
            Console.WriteLine("登录成功!");


break:
可以用于switch - case 判断中,用于跳出switch
用在循环中,用于立即跳出(终止)循环
注意:用于循环中时,跳出的是break所在的循环
Continue;
用于循环中,程序一旦执行到continue语句,立即结束本次循环(就是不再执行循环体中continue下面的语句了),直接进行下一次循环,(do -while/while 直接进行下一次循环条件的判断,如果条件成立,则再次进入循环,  对于 for 循环,先执行表达式3,再判断循环条件是否成立)



作者: §風過無痕§    时间: 2013-8-7 15:22
  1. while(布尔表达式)
  2. {
  3.    语句块;
  4. }
复制代码
while语句用于根据条件值执行一条语句零次或多次,当每次while语句中的代码执行完毕时,将重新查看是否符合条件,若符合则再次执行相同的程序代码;否则跳出while语句,执行其他程序代码。
  1. do
  2. {
  3.     语句块;
  4. }
  5. while(布尔表达式)
复制代码
do......while语句与while语句相似,其判断条件在循环后。do......while循环会在计算表达式之前执行一次

for(初始化表达式;  条件表达式;  迭代表达式 )
{
       语句块;
}
for语句用于计算一个初始化序列,然后当某个表达式为真时,重复执行嵌套语句并计算一个迭代表达式序列。如果为假,则终止循环,推出for循环

do......while语句和while语句区别:若条件为假情况下 do......while语句会执行一次  而while语句则不会
作者: 落叶秋风    时间: 2013-8-7 20:57
while是先判断都执行程序,do while是先执行一次后判断,for是知道循环次数,还有foreach,它相当于数据结构中的链式查询




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2