您的位置:程序门 -> c/c++ ->



一个循环的问题.


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


一个循环的问题.
发表于:2007-04-23 10:01:53 楼主
#include   <stdio.h>
void   main()
{
int   i=1;
while(i <=10)

{   printf( "%d ",i);
      i++;
}
}

输出结果为1   2   34   5   6   7   8   9   10

如果要是不在printf在{号.和i++后面加}

程序既

#include   <stdio.h>
void   main()
{
int   i=1;
while(i <=10)

      printf( "%d ",i);
      i++;

}

出去结果将成为死循环   即1111111111111111111111111111111111111......
让我迷惑不接是
是面在printf前加个{号.和在i++;后面加上一个右}号.输出结果就正确.
而要是在不在printf前家左{号.和i++;后面加右}输出结果竟然是个死循环.
请高手给我解释解释.
发表于:2007-04-23 10:04:521楼 得分:0
简单问题,楼主还是看看书吧,要不然大部分程序都看不懂的
发表于:2007-04-23 10:10:072楼 得分:0
你i不加加
i永远是1
如何才能大于10呢?
不大于10
当然是无限循环了
发表于:2007-04-23 10:12:303楼 得分:0
#include   <stdio.h>
void   main()
{
int   i=1;
while(i <=10)

      printf( "%d ",i);
      i++;

}

等同于
#include   <stdio.h>
void   main()
{
int   i=1;
while(i <=10)
{
      printf( "%d ",i);
}
      i++;

}
发表于:2007-04-23 10:13:144楼 得分:0
因为
#include   <stdio.h>
void   main()
{
int   i=1;
while(i <=10)

      printf( "%d ",i);
      i++;

}

其实就相当于

#include   <stdio.h>
void   main()
{
int   i=1;
while(i <=10)   printf( "%d ",i);
     
i++;

}
 
在while循环里,   i没有变化,   能不死循环么?   如果加了{},   while循环就会执行i++,   就没有问题了.   顺便问一句,   lz在哪里学c/c++,   老师连这个都不教?
发表于:2007-04-23 10:14:375楼 得分:0
while(i <=10)

{   printf( "%d ",i);
      i++;
}
----------------------
执行完
printf( "%d ",i);
i++;后,才跳回while(i <=10)


while(i <=10)

      printf( "%d ",i);
      i++;
----------------------
执行完printf( "%d ",i);就跳回了
发表于:2007-04-23 10:19:126楼 得分:0
楼主想想,第一个程序为什么就能正常打印?
这是因为你有控制循环的变量i,你的i会每次增大1,这样,当i增大到10后,循环判断不满足,就退出循环了.这就是第二个程序不能正常运行的原因.你的循环体只包括printf语句,控制循环的变量i在循环外面,不能对循环起到控制作用
发表于:2007-04-23 10:20:507楼 得分:0
这个仔细看书吧……
发表于:2007-04-23 10:23:208楼 得分:0
正确的程序和人生命一样总有结束的那么一天。
发表于:2007-04-23 10:50:519楼 得分:0
我有用了for循环写了这道题,可是输出的结果竟然是55 .请问高手.我的程序那里错了
#include   <stdio.h>
void   main()
{
int   sum=0;
int   i;

for(i=1;i <=10;i++)
sum=sum+i;
printf( "%d\n ",sum);



}
发表于:2007-04-23 11:10:0610楼 得分:0
我明白了
哈哈.谢谢各位
发表于:2007-04-23 14:48:0711楼 得分:0
多看点书拉
发表于:2007-04-23 16:44:2112楼 得分:0
不加括号   while语句就是打印而已   没加i当然循环打印啊
发表于:2007-04-23 16:50:4213楼 得分:0
还要加油啊!
发表于:2007-04-24 14:01:3914楼 得分:0
你这样一来i++;是在循环体外面了,对于int   i=1   while(i <10)的条件永远是成立的。因为你的循环只有一条语句   printf( "%d ",i);
发表于:2007-04-24 14:04:3415楼 得分:0
你的那个for   循环做的是从1加到10,你自己可以算算是不是55啊

发表于:2007-04-24 15:11:2916楼 得分:0
多看看书。。循环这一块内容。。


快速检索

最新资讯
热门点击