黑马程序员技术交流社区

标题: 请教:有关循环语句 do while句型 [打印本页]

作者: 黑龙江—刘鹏    时间: 2012-7-3 18:11
标题: 请教:有关循环语句 do while句型
本帖最后由 黑龙江—刘鹏 于 2012-7-3 18:28 编辑

class WhileDemo //循环语句。
{
public static void main(String[] args)
{
  
  int y = 10;
  do
  {
   System.out.println("do:y="+y);
   
   y++;
   
  }
  while(y<11);
  {
   System.out.println("y="+y);
   
  }
  
}
}
其输出结果是 do:y=10
y=11; 为什么在do中 y的值加到11 应该不满足 whlie(y<11)为什么还会执行 System.out.println("y="+y);
从而打印出 y=11呢?

作者: 王健    时间: 2012-7-3 18:14
do whlie语句中不管条件怎么样,都会执行一次循环
作者: 黑龙江—刘鹏    时间: 2012-7-3 18:15
王健 发表于 2012-7-3 18:14
do whlie语句中不管条件怎么样,都会执行一次循环

诶 ?  那么 执行的 应该是do下的执行条件吧 为什么是 while下的呢
作者: 黑龙江—刘鹏    时间: 2012-7-3 18:19
王健 发表于 2012-7-3 18:14
do whlie语句中不管条件怎么样,都会执行一次循环

难道是do while下的所有 执行代码~~
作者: dev    时间: 2012-7-3 18:19
do while语句本来就有个特点:
先执行循环体,再判断条件,条件满足,再继续执行循环体
即do while无论条件是否满足,循环体至少执行一次。
而程序中你在do语句中已经定义了打印语句了。如
do
  {
   System.out.println("do:y="+y); //这里不论while条件是否满足,都至少会执行一次。
   
   y++;
   
  }
  while(y<11);
  {
   System.out.println("y="+y);
   
  }



作者: 韦念欣    时间: 2012-7-3 18:21
这段代码是一定会执行System.out.println("y="+y);的
因为没有进入do while循环前,y已经等于10了,里面输出10,然后y自增,这时y就等于11了,循环条件判断不满足,于是跳出循环,执行System.out.println("y="+y);语句。
作者: 黑龙江—刘鹏    时间: 2012-7-3 18:22
哦 那么就是说 所有的输出语句都会执行一次咯 嗯 确实是这样 我把y的值换成了1000 嗨是有俩结果的
作者: 黑龙江—刘鹏    时间: 2012-7-3 18:23
{:soso_e113:}

解决咯
作者: 梁健生    时间: 2012-7-3 18:23
黑龙江—刘鹏 发表于 2012-7-3 18:15
诶 ?  那么 执行的 应该是do下的执行条件吧 为什么是 while下的呢

哈哈哈  哥们 你跟我有一拼  注意看下 do.....while 语句执行时 ,do的语句必定先执行一次,这个你了解,那么while;后面的分号你没看见,就算不怎么明白语句也应该知道此循环已经结束,他下面的  {
    System.out.println("y="+y);
   
   }只是单纯的起着再一次输出y值得作用,你上边y++已经使y变成11了,下面只是输出而已!! 下回注意点别粗心了!!
作者: 黑龙江—刘鹏    时间: 2012-7-3 18:26
我去 原来是 这个语句到了while();就结束了呀  诶呀 基础一定要抓牢
作者: 黑龙江—刘鹏    时间: 2012-7-3 18:27
梁健生 发表于 2012-7-3 18:23
哈哈哈  哥们 你跟我有一拼  注意看下 do.....while 语句执行时 ,do的语句必定先执行一次,这个你了解, ...

嘿嘿 马虎啦  我啊 while();就结束啦~~
作者: 韦念欣    时间: 2012-7-3 18:28
黑龙江—刘鹏 发表于 2012-7-3 18:26
我去 原来是 这个语句到了while();就结束了呀  诶呀 基础一定要抓牢

基础很重要的哦,这位同学要多加练习!
作者: dev    时间: 2012-7-3 18:28
梁健生 发表于 2012-7-3 18:23
哈哈哈  哥们 你跟我有一拼  注意看下 do.....while 语句执行时 ,do的语句必定先执行一次,这个你了解, ...

同意你说法!
作者: 黑龙江—刘鹏    时间: 2012-7-3 18:31
嗯 谢谢 黑马tv的兄弟们{:soso_e103:}
作者: 梁健生    时间: 2012-7-3 18:33
黑龙江—刘鹏 发表于 2012-7-3 18:27
嘿嘿 马虎啦  我啊 while();就结束啦~~

哥们加油 !我也是零基础 现在才学到第5天 我们一起加油!!!~
作者: 黑龙江—刘鹏    时间: 2012-7-3 18:35
梁健生 发表于 2012-7-3 18:33
哥们加油 !我也是零基础 现在才学到第5天 我们一起加油!!!~

冲吧 哈哈  加油!




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