回 帖 发 新 帖 刷新版面

主题:60岁的我学编程--对"while"和“for”的理解


         对于while和for的理解

    我的理解;其实这是循环指令,在一个程序里,为了区别不同的用法,所以还是有点区别的,如;

   void main()
{
    a=0x7f;
    while(1)    //大循环,是在下面的语句中反复执行//
    {
        delay(10);
        P1=a;
           a=_crol_(a,9); 
    }
}
 
 "while(1)"为大循环也称死循环,如果在“while(1);”后面加有‘;’也就是程序运行到这一步就停了下来,就不能再往下执行了,所以在大循环时,()后是不能加分号的‘;’

  对于另一个循环指令for;这是一条循环指令,但与while有点不同,具体表现在;

      while(1)它是在下一个执行指令中循环,而for()是在()内的指令中循环,
       如; 

 void  delay (uint z )
     
     
{
    uint x,y;
         
    for(x=z;x>0;x--)
       for(z=100;y>0;y--);
}
     
  但有一点还没有搞清楚;while与for能不能互换,比如说把while(1) 换成for(1)?
  对于这点我还没有试过,不知道行不行?

     以上是我对二个循环指令的用法的理解,这样理解对吗?

     希望能得到你的点评,以便提高我学习的热情,谢谢!

回复列表 (共9个回复)

沙发

回 楼主: 

    while 和 for 基本上都可以互换,但 for 循环会使程序更加简洁,而 while 循环会使程序看起来更有层次感。如 while(1) ,换成 for 循环就是 for(;;)。这两个都是入口循环,就是先判断,后执行。而还有一种为 do{    }while(),它是出口循环,就是说不论这个条件是否满足,先把循环体中的语句执行过之后再判断是否再次循环。

    希望您老能把这次任务拿下来。另外提醒您一下:网上应该有类似的现成的程序,如果百度搜一下,把现成的程序拿来借鉴一下,对完成这次任务应该帮助会很大的。

    祝您学 C 愉快。

板凳

太谢谢你了,我还是要按你所述试一试,只有完全理解了才能运用灵活应用,再次谢谢!!

3 楼

晕哦. 像你这样理解程序估计活到6000岁也学不会,,,
你要从流程图上看下, 看下它是怎么个流程..

4 楼

毕竟CPU执行程序是串行的,不是并行的.  本来一个多简单的东西,弄得比天书还老火.

5 楼

[quote]回 楼主: 

……但 for 循环会使程序更加简洁,而 while 循环会使程序看起来更有层次感。……[/quote]

不同意
我认为各种循环语句都可以互换
但不同情况下
某种循环写起来会显得更流畅

6 楼

[quote]毕竟CPU执行程序是串行的,不是并行的.  本来一个多简单的东西,弄得比天书还老火.[/quote]

CPU也可以伪装成并行的
这点你不反对吧

7 楼

[quote][quote]毕竟CPU执行程序是串行的,不是并行的.  本来一个多简单的东西,弄得比天书还老火.[/quote]

CPU也可以伪装成并行的
这点你不反对吧
[/quote]


说了半天你还是建立在串行的基础上的..
即使是并行的,也是可以用串行来分离思考..
并且你又不是写FPGA程序.

8 楼

[quote][quote][quote]毕竟CPU执行程序是串行的,不是并行的.  本来一个多简单的东西,弄得比天书还老火.[/quote]

CPU也可以伪装成并行的
这点你不反对吧
[/quote]


说了半天你还是建立在串行的基础上的..
即使是并行的,也是可以用串行来分离思考..
并且你又不是写FPGA程序.[/quote]

我是抛开主贴讲这句话的
我的意思是说并行有时是非常必要的
哪怕是伪装的

9 楼

hai 是在里面学习了点皮毛啊!

我来回复

您尚未登录,请登录后再回复。点此登录或注册