黑马程序员技术交流社区

标题: do-while和while循环的区别 [打印本页]

作者: 王彦伟    时间: 2012-12-6 14:08
标题: do-while和while循环的区别
do-while只是说一个是先运行一次循环体再判断循环体;while是先判断循环条件,再运行循环体。单我发现区别真的不好掌握 啊。有通俗易懂的讲法吗
作者: 李孟瞧    时间: 2012-12-6 14:44
do-while是无论条件是否成立,循环体都会被执行一遍。
通俗一点的话。。。while是货到付款,do-while是先付款后发货而且还概不退换。
作者: 李孟瞧    时间: 2012-12-6 14:47
通俗一点的话。。。。while是货到付款,do-while是先付款后发货而且还概不退换。
作者: 黄新    时间: 2012-12-6 14:55
111111111111111111111111111111111111111
作者: 刘亚龙    时间: 2012-12-6 15:03
            int i = 0;
            while (i > 1)
            {
                Console.WriteLine("while输出一次");
            }
            do
            {
                Console.WriteLine("dowhile输出一次");
            } while (i > 1);
结果是只显示"dowhile输出一次",区别就在于while语句执行循环之前会先判断条件是不是满足,满足才执行。do-while是不管条件满不满足,先执行一次循环体。也就有了这样的结果。
作者: 黄新    时间: 2012-12-6 15:05
这个应该是很好理解的啊 , 就是do ....while  先执行要循环的代码  , 再判断条件是否成立 , 是否进行下一次循环。  
而 while ...do 就是第一次就先判断循环的条件是否成立,是否进入循环。 do....while 必须做一次循环 。  while ... do 可能 一次循环也不做
作者: 赵保磊    时间: 2012-12-6 15:10
do_while循环是不管满不满足条件do里边的代码都会先执行一遍,然后判断条件是否符合,符合的话继续循环执行do,否则循环结束;
while -do循环式先判断条件是否符合,符合的话执行do里边的代码,否则不执行。
作者: 王彦伟    时间: 2012-12-6 16:12
师兄们,主要是在一中情况下,我感觉用两种都行,区别不是很大啊
作者: 李孟瞧    时间: 2012-12-6 16:27
哎。。。之前的回复有敏感词汇,貌似没通过呢。。。。
通俗点说的话,while是先谈恋爱,不合适了分手,合适了就结婚;do-while是先闪婚,然后两个人再相处,不合适了虽然可以离婚,但是但是也有了已婚的记录。
你说这区别大不大?
作者: 黑马-项泽宇    时间: 2012-12-6 17:59
举例说明吧:
需求:从数据库a中取出所有记录并输出。
假设我们不确定数据库内有几条数据,有可能还没有数据,那么代码应该这么写:
  1. class test{
  2.     public static void main(String[] args){
  3.         while(是否已经取完数据)// 如果取完了就返回假
  4.         {
  5.              System.out.println("某某行数据");
  6.         }
  7.     }
  8. }
复制代码
假设我们知道数据库至少有一条记录,我们就可以直接先进行输出,然后在判断后面还有没有数据需要输出:
  1. class test{
  2.     public static void main(String[] args){
  3.         do
  4.         {
  5.              System.out.println("某某行数据");
  6.         }while(是否已经取完数据) // 如果取完了就返回假
  7.     }
  8. }
复制代码

作者: dbqwaii    时间: 2012-12-8 12:10
do``while 先执行,直接跳入循环体了,而while则是先判断   如果判断不正确  则不进入循环   
个人感觉,应用中还是要看是实际情况的.多联系几遍,自己就感觉出来了  
作者: 苏波    时间: 2012-12-8 18:21
do while不管条件是否符合 都先执行一次循环体,而while 是先判断条件如果条件成立就执行循环体,直到条件不成立为止
作者: 马海保    时间: 2012-12-8 19:44
while
是先判断再执行
例:
int i=10;
while(i<10){ System.err.println(i); i++; } 结果是什么都不打印,最终i的值为10
  
do-while
是先执行再判断
例:
int i=10; do{ System.err.println(i); i++; }while(i<10); 打印的也是10,最终i=11
两者的区别在于第一圈循环时,while是先判断循环条件,再循环.所以第一个程序什么都不打印.
而do-while则是先执行后判断.所以,第二个程序先打印10,然后i++然后跳出循环.
例:
public static void main(String[] args) {
  // TODO Auto-generated method stub
  int num;
  int count;  
count = 0;  
num = 20;  
while (num < 250) {

        num += 20;  
        count++;  
}  
System.err.println("while:"+count+"次");  
count = 0;  
num = 20;  
do {  
     num += 20;

   count++;  
} while (num < 250);
  System.err.println("do-while:"+count+"次"); }  
输出结果:  
while:12次  
do-while:12次
分析:
num+ = 20;可以理解为num = num +20;
例:
int a=0;
  for(i=1;i<=100;i++){
     a=a+i;  
  }
  其中,a=a+i一句可以替换为a+=i,效果一样.为便于理解,你可以把a+=i读做"a加的是i"

作者: 刘丰伟    时间: 2012-12-8 20:11
比如要求用户输入一个数字,如果用户输入的不是数字的话,则显示要求用户重新输入,这个代码在实现是用do while很适合,但是用while你实现下试试?
作者: 邵帅    时间: 2012-12-9 12:31
//不断要求用户输入学生姓名,输入q结束.
            //string name = "";
            //Console.WriteLine("输入姓名");
            //name = Console.ReadLine();
            //while (name != "q")
            //{
            //    Console.WriteLine("输入姓名");
            //    name = Console.ReadLine();
            //}
像这种重复代码的时候,你就可以用do-while,因为do-while至少执行一次,用do-while所以就把在提示一次给省略了。结果如下
           //string name = "";   
            //do{
            //    Console.WriteLine("输入姓名");
            //    name = Console.ReadLine();
            //}
               //while (name != "q");

作者: 985127948    时间: 2012-12-13 03:54
do while是先执行以下循环语句然后再判断循环条件然后再继续执行循环语句这样一直下去,而while是直接判断循环条件然后执行循环语句这样循环下去
第一季有这些循环的用法与区别,可以多看看。
作者: 黑马丁巍    时间: 2012-12-13 10:17
do-while是先运行一次循环体再判断循环条件;而while是先判断循环条件,再运行循环体
并且需要注意的是do-while的格式,while后面的分号不要忘记了
do
{
循环体;
}
while();
作者: 张鹏飞    时间: 2012-12-13 11:48
比喻一下:

while是先问你现在饿吗?如果饿才开始给你盛饭.吃完后继续问你还饿吗?

do-while 是直接给你盛饭,当你吃完时,才问你是否吃饱(while),没有吃饱继续给你盛饭.
作者: 985127948    时间: 2012-12-14 09:55
do while循环的特点是先执行一次循环语句然后再判断循环条件接着执行循环,而while循环是先判断循环条件看是否成立在执行循环语句,while循环在循环条件不成立的时候可能一次循环语句都不执行,但是do while不管循环条件是否成立都会在第一次的时候执行一次循环语句。
作者: 梦ing    时间: 2012-12-19 17:15
while是先判断再循环,不满足条件不能运行;do while是先执行一次再判断,如果不满足条件则不再执行
作者: 刘斌    时间: 2012-12-19 17:25
while(条件){语句};          先判断条件真假,再选择执不执行语句
do{语句}while(条件);      管他三七二十一,先执行一次do语句,再判断条件真假,而后再选择继不继续执行语句
如何用视情况而定,用得都很少,都可用for代替的,还是for常用
作者: 郭小伟    时间: 2012-12-19 18:11
do-whille循环中do是执行体,while是循环条件,do{}while();先执行一遍do里的代码,然后就到了while循环条件里判断一下条件是否符合,如果符合就继续执行do里的代码,如果不符合就不执行do里的代码。所以肯定要先执行一次do里的代码再去判断的。
while(){}循环的循环条件就在()里,所以首先你得看一下条件符合不,如果不符合还执行个啥啊,不就一次也不用执行了啊!
作者: if_lee    时间: 2013-8-20 11:53
do-while 先执行再判断 ,while先判断再执行; 还要 注意一个问题do{}里面的变量 和while()里面的变量都是局部变量




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