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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王彦伟 中级黑马   /  2012-12-6 14:08  /  4792 人查看  /  22 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

do-while只是说一个是先运行一次循环体再判断循环体;while是先判断循环条件,再运行循环体。单我发现区别真的不好掌握 啊。有通俗易懂的讲法吗

评分

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

查看全部评分

22 个回复

倒序浏览
do-while是无论条件是否成立,循环体都会被执行一遍。
通俗一点的话。。。while是货到付款,do-while是先付款后发货而且还概不退换。
回复 使用道具 举报
通俗一点的话。。。。while是货到付款,do-while是先付款后发货而且还概不退换。
回复 使用道具 举报
111111111111111111111111111111111111111
回复 使用道具 举报
            int i = 0;
            while (i > 1)
            {
                Console.WriteLine("while输出一次");
            }
            do
            {
                Console.WriteLine("dowhile输出一次");
            } while (i > 1);
结果是只显示"dowhile输出一次",区别就在于while语句执行循环之前会先判断条件是不是满足,满足才执行。do-while是不管条件满不满足,先执行一次循环体。也就有了这样的结果。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
这个应该是很好理解的啊 , 就是do ....while  先执行要循环的代码  , 再判断条件是否成立 , 是否进行下一次循环。  
而 while ...do 就是第一次就先判断循环的条件是否成立,是否进入循环。 do....while 必须做一次循环 。  while ... do 可能 一次循环也不做

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
do_while循环是不管满不满足条件do里边的代码都会先执行一遍,然后判断条件是否符合,符合的话继续循环执行do,否则循环结束;
while -do循环式先判断条件是否符合,符合的话执行do里边的代码,否则不执行。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
师兄们,主要是在一中情况下,我感觉用两种都行,区别不是很大啊
回复 使用道具 举报
哎。。。之前的回复有敏感词汇,貌似没通过呢。。。。
通俗点说的话,while是先谈恋爱,不合适了分手,合适了就结婚;do-while是先闪婚,然后两个人再相处,不合适了虽然可以离婚,但是但是也有了已婚的记录。
你说这区别大不大?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
举例说明吧:
需求:从数据库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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
do``while 先执行,直接跳入循环体了,而while则是先判断   如果判断不正确  则不进入循环   
个人感觉,应用中还是要看是实际情况的.多联系几遍,自己就感觉出来了  

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
do while不管条件是否符合 都先执行一次循环体,而while 是先判断条件如果条件成立就执行循环体,直到条件不成立为止

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
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"

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
比如要求用户输入一个数字,如果用户输入的不是数字的话,则显示要求用户重新输入,这个代码在实现是用do while很适合,但是用while你实现下试试?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
//不断要求用户输入学生姓名,输入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");

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
do while是先执行以下循环语句然后再判断循环条件然后再继续执行循环语句这样一直下去,而while是直接判断循环条件然后执行循环语句这样循环下去
第一季有这些循环的用法与区别,可以多看看。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
do-while是先运行一次循环体再判断循环条件;而while是先判断循环条件,再运行循环体
并且需要注意的是do-while的格式,while后面的分号不要忘记了
do
{
循环体;
}
while();

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
比喻一下:

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

do-while 是直接给你盛饭,当你吃完时,才问你是否吃饱(while),没有吃饱继续给你盛饭.

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
do while循环的特点是先执行一次循环语句然后再判断循环条件接着执行循环,而while循环是先判断循环条件看是否成立在执行循环语句,while循环在循环条件不成立的时候可能一次循环语句都不执行,但是do while不管循环条件是否成立都会在第一次的时候执行一次循环语句。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
梦ing 中级黑马 2012-12-19 17:15:50
20#
while是先判断再循环,不满足条件不能运行;do while是先执行一次再判断,如果不满足条件则不再执行
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马