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

© xiabingxiejiang 中级黑马   /  2013-8-6 11:01  /  1958 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

while   do    while     for

评分

参与人数 1技术分 +2 收起 理由
滔哥 + 2

查看全部评分

9 个回复

正序浏览
while是先判断都执行程序,do while是先执行一次后判断,for是知道循环次数,还有foreach,它相当于数据结构中的链式查询
回复 使用道具 举报
  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语句则不会
回复 使用道具 举报
    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,再判断循环条件是否成立)


回复 使用道具 举报
while:先判断条件是否符合,如果符合才会执行while里的语句;
do......while:不管下面的while条件是否成立,都会至少执行一次do里的语句,直到while条件不符合停止;
for:for循环与while差不了多少,都是条件成立去执行里面的语句;
这几种循环,某种情况下是等价的,看你想要怎么用,用着哪个顺~~~
回复 使用道具 举报
for 用于在知道循环多少次的条件下用最好,而while ,do while    是用于判断语句条件来确定循环次数   do while只是不管怎么样都会执行一次的循环       do while能做的事 while一般都能做。  
回复 使用道具 举报
知道循环多少步的用for,用条件来结束的用while  和do    while,while 和do    while的区别是 do while 最少会运行一次,while 可能一次都不会运行
回复 使用道具 举报
没空行不好看清  我再发一遍
  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.           }
复制代码
回复 使用道具 举报
你是说的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.           }
复制代码
不知道对你有没有帮助

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
while :它用来实现"当型"循环结构。其一般形式如下:
WHILE(表达式)语句
当表达式为非0值时执行WHILE语句中的内嵌语句。其特点是:先判断表达式,后执行语句。

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

for:是用来表示循环次数已知的情况,它的使用格式为:for( 表达式一; 表达式二; 表达式三) 循环体语句
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马