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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 硬别 中级黑马   /  2013-10-14 20:52  /  2346 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 硬别 于 2013-10-14 21:47 编辑

while和do-while的区别是什么?一般什么情况下用while,什么情况下又用到do-while?

评分

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

查看全部评分

8 个回复

倒序浏览
其实吧没有太大的区别,while是先判断循环条件在执行循环体,do-while是先执行循环体一次在进行循环条件的判断。do-while能做的事情用while都可以做,但是有时候while能做的用do-while却不一定能做。

评分

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

查看全部评分

回复 使用道具 举报
      while(条件){语句;} 先判断条件,如果为真,则执行语句,否则结束循环,直到条件为假结束循环。
    do{语句:}while(条件)先执行语句,然后判断条件,如果为真,则执行语句,否则结束循环,直到条件为假结束循环。
    它们的不同在于do—while先执行了一次语句,再判断条件,而while是先判断条件,后执行语句。
    所以,你要在进去循环前先执行循环体语句,则使用do—while,如:你要求别人输入成绩,而你需要判定成绩是否有效(0~100的数),你可以使用do—while。
   最后,我想说while和do—while完全可以等价,这一点很重要。具体实现就是,你在使用while时,在进去
while之前,也就是while循环体语句的上面(最好是紧挨着),加一次循环体语句就可以了。至此,就不用纠结while和do—while了。

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 夏闯富 于 2013-10-14 21:18 编辑

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

评分

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

查看全部评分

回复 使用道具 举报
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执行一次循环体,输入一个数字,才能进行后续的操作了...
  以上仅仅是个人的理解,希望能对你有所帮助~~

评分

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

查看全部评分

回复 使用道具 举报
区别不大吧,while循环先判断循环条件后执行循环体,do-while先执行循环体在判断循环条件是否进行下一次循环,同样的功能while和do-while都能实现,只是实现的过程谁更简便而已,具体问题具体对待。

评分

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

查看全部评分

回复 使用道具 举报
Liu阳 中级黑马 2013-10-14 21:29:49
7#
while是先判断再执行,
而do while是先执行再判断。
所以while的循环体里面的语句可能不执行,而do while循环体里面的语句则至少执行一次。

评分

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

查看全部评分

回复 使用道具 举报
没什么区别 呵呵  其实吧 大多数时候都可以混着用 do while只是在不满足循环条件的时候多执行了一次 根据情况使用哦

评分

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

查看全部评分

回复 使用道具 举报
while:先判断是否满足条件,再执行括号里的语句。
do while:无论如何都执行一次括号里的语句,在判断是否满足条件,决定是否执行下一次。

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马