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);

     


  总而言之,具体使用视状况而定!!!

相关文章
相关标签/搜索