首页 新闻 会员 周边

求解do while循环!!!

0
悬赏园豆:5 [已解决问题] 解决于 2012-02-22 14:16

若循环体内没有改变i的值,此循环执行的次数?

int i=0;

do

{

//循环体语句

}while(++i<=10);

看资料没看懂do while ,求解

c#
问题补充:

谢谢大家的回复,我还是没理解,谁能说的准确点呢?

luckydd的主页 luckydd | 初学一级 | 园豆:77
提问于:2012-02-17 16:44
< >
分享
最佳答案
0

i=0执行第一次循环--------(++i=1<=10)---------i=1

i=1执行第二次循环---------------------------------i=2

. .....

i=10执行第11次循环-------(++i=11>10)跳出循环

收获园豆:5
ZGHAPPY | 菜鸟二级 |园豆:207 | 2012-02-17 20:27

这位仁兄够详细,最容易理解

iQingHan | 园豆:19 (初学一级) | 2012-02-18 11:50
其他回答(6)
0

9次。。。。

SNAIL_ll | 园豆:280 (菜鸟二级) | 2012-02-17 16:49

不对,我知道答案是11次,不懂

支持(0) 反对(0) luckydd | 园豆:77 (初学一级) | 2012-02-17 16:53
2

++是在判断前执行,所以第一次判断时i是1第十一次判断时i是11,一共跑了11次

today4king | 园豆:3499 (老鸟四级) | 2012-02-17 17:02
0

一共执行了11次

View Code
 1  class test
2 {
3 public static void Main() {
4 int i = 0;
5 int count = 0;
6 do
7 {
8 count++;
9 } while (++i <= 10);
10 Console.WriteLine(count);
11 Console.ReadKey();
12 }
13 }

我这里设了一个临时变量 count记录执行的次数
首先我们++i <=10 首先先执行++运算 然后再比较
从一开始到10一共10次 但是do while语句是先执行循环体内部的代码 然后再判断如果为真在进入循环体如果为假跳出循环体
所有10次 在加上一次最后的循环体的一次
如果不明白我后面的意思你可以吧<=10 改写成为<=0然后调试一下就会明白了

唯吴独尊 | 园豆:707 (小虾三级) | 2012-02-17 17:05
0

你没弄懂的是++i和i++

//++i
i = 1;
j = ++i;
(i is 2, j is 2)

++i是i先自增,然后再把自增后的i返回

//i++
i = 1;
j = i++;
(i is 2, j is 1)

i++是先返回i,然后i再自增

你问题中i从0增到10,所以循环执行了11次

artwl | 园豆:16736 (专家六级) | 2012-02-17 17:06
0

一共执行了11次,第一次不判断条件,i=0,1,2,3,4,5,6,7,8,9,10 档i=10的是后 ++i<=10(i+1<=10)就不成立了

sunlary | 园豆:934 (小虾三级) | 2012-02-17 17:11

当i=10的时候。虽然已经不满足条件,但还是循环了一次
因为do while循环是先执行循环体内的代码再去判断

是这样理解么?

支持(0) 反对(0) luckydd | 园豆:77 (初学一级) | 2012-02-17 17:43

@blog_doudou: i==10时仍然满足条件i<=10,所以循环继续继续一次,到i==11时不满足了,跳出,共进行11次

支持(0) 反对(0) P.C ++ | 园豆:97 (初学一级) | 2012-02-17 19:17

@blog_doudou: 当i==10的时候是满足条件的,这个do 。。。while(++i<=10)循环是先执行后判断条件

支持(0) 反对(0) sunlary | 园豆:934 (小虾三级) | 2012-02-20 13:29
0

共执行11次,1--11,到i==11的时候才跳出循环

P.C ++ | 园豆:97 (初学一级) | 2012-02-17 19:14

???

(++i<=10)++在前是先自增一在赋值的吧

支持(0) 反对(0) luckydd | 园豆:77 (初学一级) | 2012-02-17 20:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册