for循环把初始化测试更新组合在一起,其基本形式如下所示:

  1. for(初始化;测试条件;更新表达式)
  2. {
  3. //循环体
  4. }

  关键字for后面的圆括号中3个表达式,分别用两个分号隔开:
  第一个表达式是初始化,只会在for循环开始时执行一次。
  第二个表达式是测试条件,在执行循环之前对表达式求值。如果表达式为假,循环结束。
  第三个表达式执行更新,在每次循环结束时求值。

for循环的结构图:



  除此之外,这里注重学习一下for循环的其它9种用法:


  第一种:可以使用递减运算符来递减计数器:

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

  第二种:可以让计数器递增2、10等:

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

  第三种:可以用字符代替数字计数

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

  第四种:除了测试迭代次数外,还可以测试其它条件

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

  第五种:可以让递增的量几何增长,而不是算数增长。也就是说,每次都乘上而不是加上一个固定的量

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

  第六种:第三个表达式可以使用任意合法的表达式。无论是什么表达式,每次迭代都会更新表达式的值

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

  第七种:可以省略一个或多个表达式(但是不能省略分号),只要在循环中包含能结束循环的语句即可.

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

  第八种;第一个表达式不一定是给变量赋初值,也可以是printf()。记住,在执行循环的其它部分之前,只对第一个表达式求值一次或执行一次

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

  第九种:循环体重的行为可以改变循环头中的表达式。

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

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

for循环的灵活性的更多相关文章

  1. 【C语言学习】《C Primer Plus》第6章 C控制语句:循环

    学习总结 1.循环的语法跟其他语言的没差多少,可能大多数语言都在C的基础上发展出来的,所以大同小异不奇怪. 2.在判断表达式里,C语言只有0被认为是假,所有非零值正整数都被认为真. #include ...

  2. [转]Java 8:不要再用循环了

    以下内容为转载,没有在jdk8中测试,具体业务场景是否存在BUG或使用需要注意的地方有待测试. ------------------分割线---------------------- 正如我之前所写的 ...

  3. Java 8:不要再用循环了

    本文由 ImportNew - 进林 翻译自 deadcoderising.欢迎加入翻译小组.转载请见文末要求. 正如我之前所写的,Java 8中的新功能特性改变了游戏规则.对Java开发者来说这是一 ...

  4. C--控制语句循环例子

    C的三种循环while.for和do  while 先说一下scanf()函数的返回值问题 当scanf("%d,%d",&a,&b);如果用户正确输入了俩个整形变 ...

  5. Java 8:不要再用循环了 Stream替代for循环

    原文:http://www.importnew.com/14841.html 在这篇文章里,我们将会去了解传统循环的一些替代方案.在Java 8的新功能特性中,最棒的特性就是允许我们去表达我们想要完成 ...

  6. C Primer Plus学习笔记(五)- C控制语句:循环

    伪代码的概念: 伪代码是一种用简单的句子表示程序思路的方法,它与计算机语言的形式相对应.伪代码有助于设计程序的逻辑.确定程序的逻辑无误之后,再把伪代码翻译成实际的编程代码.使用伪代码的好处之一是,可以 ...

  7. Java 8:用Stream来循环集合

    本文由 ImportNew - 进林 翻译自 deadcoderising.欢迎加入翻译小组.转载请见文末要求. 正如我之前所写的,Java 8中的新功能特性改变了游戏规则.对Java开发者来说这是一 ...

  8. C Primer Plus(第五版)6

    第 6 章 C 控制语句 : 循环 在本章中你将学习下列内容 已经多次学过,没怎么标注 · 关键字: for while do while · 运算符: < > >= <= ! ...

  9. ava 8中的新功能特性

    正如我之前所写的,Java 8中的新功能特性改变了游戏规则.对Java开发者来说这是一个全新的世界,并且是时候去适应它了. 在这篇文章里,我们将会去了解传统循环的一些替代方案.在Java 8的新功能特 ...

随机推荐

  1. TabCtrl使用

    TabCtrl使用 0x1 新建子页面 插入三个对话框,ID分别为:IDD_PAGE_FILE.IDD_PAGE_NETWORK.IDD_PAGE_PROCESS 工具箱-[属性]-[Style]设置 ...

  2. 【转】linux的特殊符号与正则表达式

    [转]linux的特殊符号与正则表达式 第1章 linux的特殊符号 1.1 通配符 * {} 1.1.1 含义 方便查找文件 通配符是用来找文件名字的. 1.1.2  * 通过find 命令找以 . ...

  3. python 历险记(三)— python 的常用文件操作

    目录 前言 文件 什么是文件? 如何在 python 中打开文件? python 文件对象有哪些属性? 如何读文件? read() readline() 如何写文件? 如何操作文件和目录? 强大的 o ...

  4. 汇编语言转换成c语言,或者汇编语言转换成golang的汇编,c语言转换成golang的方法

    https://github.com/minio/c2goasm http://microapl.com/asm2c/index.html               收费的 https://gith ...

  5. C++:__stdcall详解

    原文地址:http://www.cnblogs.com/songfeixiang/p/3733661.html 对_stdcall 的理解(上)在C语言中,假设我们有这样的一个函数:int funct ...

  6. jumpserver会话终端故障

    查看jumpserver的终端,发现无法访问,情况如下图 页面中提到,需要部署luna,coco和nginx的url分发. 然后进入到jumpserver的服务器,发现nginx启动了,但是没有coc ...

  7. git命令行提交并且同步到远程代码库

    远程代码库以github为例 1.打开 git bash 2.进入项目目录 cd /e/myGitProjects/test 3.提交到本地git仓库 git add -Agit commit -m ...

  8. mpVue小程序全栈开发

    1.微信小程序,mpVue和wepy的对比 2. 3.es6中关于数组的一些方法 <script> let arr = [,,,] // 遍历 arr.forEach(v => { ...

  9. oracle进阶之connect by笔记

    本博客是自己在学习和工作途中的积累与总结,仅供自己参考,也欢迎大家转载,转载时请注明出处. http://www.cnblogs.com/king-xg/p/6794562.html 如果觉得对您有帮 ...

  10. tsconfig.json配置

    什么工具看什么官网-一般都会有说明的 https://www.tslang.cn/docs/handbook/tsconfig-json.html 概述 如果一个目录下存在一个tsconfig.jso ...