for循環的靈活性

  for循環把初始化測試更新組合在一塊兒,其基本形式以下所示:學習

  1. for(初始化;測試條件;更新表達式)
  2. {
  3. //循環體
  4. }

  關鍵字for後面的圓括號中3個表達式,分別用兩個分號隔開:
  第一個表達式是初始化,只會在for循環開始時執行一次。
  第二個表達式是測試條件,在執行循環以前對錶達式求值。若是表達式爲假,循環結束。
  第三個表達式執行更新,在每次循環結束時求值。測試

for循環的結構圖:



  除此以外,這裏注重學習一下for循環的其它9種用法:spa


  第一種:能夠使用遞減運算符來遞減計數器:code

  1. int main(void)
    {
        for(int secs =5; secs >0; secs--)
        {
            printf("%d seconds!\n", secs);
        }
        return0;
    }

     


  第二種:能夠讓計數器遞增二、10等:blog

  1. int main(void)
    {
        //secs從2開始,每次遞增5
        for(int secs =2; secs <60; secs +=5)
        {
            printf("%d seconds!\n", secs);
        }
        return0;
    }

     


  第三種:能夠用字符代替數字計數ci

  1. int main(void)
    {
        char ch;
        for( ch ='a'; ch <='z'; ch++)
        {
            printf("the ascii value for %c is %d.\n", ch, ch);
        }
        return0;
    }

     


  第四種:除了測試迭代次數外,還能夠測試其它條件it

  1. for(num =1; num*num*num <=216; num++);

     


  第五種:能夠讓遞增的量幾何增加,而不是算數增加。也就是說,每次都乘上而不是加上一個固定的量for循環

  1. int main(void)
    {
        double debt;
        for(debt =100.0; debt <150.0; debt *=1.1)
        {
            printf("your debt is now $%.2f.\n", debt);
        }
        return0;
    }

     


  第六種:第三個表達式能夠使用任意合法的表達式。不管是什麼表達式,每次迭代都會更新表達式的值class

  1. int main(void)
    {
        int x;
        int y =55;
        for(x =1; y <=75; y =(++x *5)+50)
        {
            printf("%10d %10d\n", x, y);
        }
        return0;
    }

     


  第七種:能夠省略一個或多個表達式(可是不能省略分號),只要在循環中包含能結束循環的語句便可.變量

  1. int main(void)
    {
        int x =0;
        int y =55;
        for(; y <=75; y =(++x *5)+50)
        {
            printf("%10d %10d\n", x, y);
        }
        return0;
    }

     


  第八種;第一個表達式不必定是給變量賦初值,也能夠是printf()。記住,在執行循環的其它部分以前,只對第一個表達式求值一次或執行一次

  1. int main(void)
    {
        int x =0;
        int y =55;
        for(printf("hello dear"); y <=75; y =(++x *5)+50)
        {
            printf("%10d %10d\n", x, y);
        }
        return0;
    }

     


  第九種:循環體重的行爲能夠改變循環頭中的表達式。

  1. for(y =1; y <=75; y = y + delta);

     


  總而言之,具體使用視狀況而定!!!

相關文章
相關標籤/搜索