黑马程序员技术交流社区

标题: while和do-while的问题! [打印本页]

作者: 硬别    时间: 2013-10-14 20:52
标题: while和do-while的问题!
本帖最后由 硬别 于 2013-10-14 21:47 编辑

while和do-while的区别是什么?一般什么情况下用while,什么情况下又用到do-while?
作者: 喜之郎果冻    时间: 2013-10-14 21:05
其实吧没有太大的区别,while是先判断循环条件在执行循环体,do-while是先执行循环体一次在进行循环条件的判断。do-while能做的事情用while都可以做,但是有时候while能做的用do-while却不一定能做。
作者: 曹华    时间: 2013-10-14 21:11
      while(条件){语句;} 先判断条件,如果为真,则执行语句,否则结束循环,直到条件为假结束循环。
    do{语句:}while(条件)先执行语句,然后判断条件,如果为真,则执行语句,否则结束循环,直到条件为假结束循环。
    它们的不同在于do—while先执行了一次语句,再判断条件,而while是先判断条件,后执行语句。
    所以,你要在进去循环前先执行循环体语句,则使用do—while,如:你要求别人输入成绩,而你需要判定成绩是否有效(0~100的数),你可以使用do—while。
   最后,我想说while和do—while完全可以等价,这一点很重要。具体实现就是,你在使用while时,在进去
while之前,也就是while循环体语句的上面(最好是紧挨着),加一次循环体语句就可以了。至此,就不用纠结while和do—while了。
作者: 夏闯富    时间: 2013-10-14 21:13
本帖最后由 夏闯富 于 2013-10-14 21:18 编辑

while:先判断  后执行一段代码,  格式:while(true){代码};do-while:先执行一段代码,后判断  格式do{代码}while(true);建议好好看下C#基础视频吧,里面讲师介绍更详细。


作者: 无风的风    时间: 2013-10-14 21:23
while循环体是先判断,根据是否符合条件然后考虑要不要执行while下的循环体。
do-while循环是首先执行一次循环体,然后在根据是否符合条件来执行循环体

比如说:让用户输入正整数,如果是非数字则重新输入,按q键结束
这时候就要考虑使用do-while 循环了,我先上代码
               Console.WriteLine("请输入数字:");
            do
            {
                try
                {
                    s = Console.ReadLine();
                    Num = int.Parse(s);
                    if (Num < 0)
                    {
                        Console.WriteLine("请输入一个正整数...");
                        continue;
                    }
                    IsNumber(Num);
                }
                catch
                {
                    if (s != "q")
                        Console.WriteLine("请输入正确的数字....");
                    else
                        Console.WriteLine("退出程序......");
                }
            } while (s != "q");
如果这里用while的话,就先判断s!="q"了,此时还没有输入值,这就不好处理了,只有先使用do-while执行一次循环体,输入一个数字,才能进行后续的操作了...
  以上仅仅是个人的理解,希望能对你有所帮助~~

作者: 杨靖    时间: 2013-10-14 21:26
区别不大吧,while循环先判断循环条件后执行循环体,do-while先执行循环体在判断循环条件是否进行下一次循环,同样的功能while和do-while都能实现,只是实现的过程谁更简便而已,具体问题具体对待。
作者: Liu阳    时间: 2013-10-14 21:29
while是先判断再执行,
而do while是先执行再判断。
所以while的循环体里面的语句可能不执行,而do while循环体里面的语句则至少执行一次。
作者: 夢醒了⊙﹏⊙b心    时间: 2013-10-14 21:31
没什么区别 呵呵  其实吧 大多数时候都可以混着用 do while只是在不满足循环条件的时候多执行了一次 根据情况使用哦
作者: ˋ初°见    时间: 2013-10-14 21:43
while:先判断是否满足条件,再执行括号里的语句。
do while:无论如何都执行一次括号里的语句,在判断是否满足条件,决定是否执行下一次。




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