若循环体内没有改变i的值,此循环执行的次数?
int i=0;
do
{
//循环体语句
}while(++i<=10);
看资料没看懂do while ,求解
谢谢大家的回复,我还是没理解,谁能说的准确点呢?
i=0执行第一次循环--------(++i=1<=10)---------i=1
i=1执行第二次循环---------------------------------i=2
. .....
i=10执行第11次循环-------(++i=11>10)跳出循环
这位仁兄够详细,最容易理解
9次。。。。
不对,我知道答案是11次,不懂
++是在判断前执行,所以第一次判断时i是1第十一次判断时i是11,一共跑了11次
一共执行了11次
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然后调试一下就会明白了
你没弄懂的是++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次
一共执行了11次,第一次不判断条件,i=0,1,2,3,4,5,6,7,8,9,10 档i=10的是后 ++i<=10(i+1<=10)就不成立了
当i=10的时候。虽然已经不满足条件,但还是循环了一次
因为do while循环是先执行循环体内的代码再去判断
是这样理解么?
@blog_doudou: i==10时仍然满足条件i<=10,所以循环继续继续一次,到i==11时不满足了,跳出,共进行11次
@blog_doudou: 当i==10的时候是满足条件的,这个do 。。。while(++i<=10)循环是先执行后判断条件
共执行11次,1--11,到i==11的时候才跳出循环
???
(++i<=10)++在前是先自增一在赋值的吧