请看正文

C语言中,for语句是三种循环控制语句之一。也是比较常用且执行效率较高的一种。本文将详细阐述for语句的用法及使用注意事项。

一、基本用法

for(;;)

{

循环体语句;

}

C语言中,for语句通常适用于循环次数已知的场景。其初始化部分通常是一个赋值语句,一般用于循环控制变量的初始化,当然也可以给其它变量初始化。条件表达式,主要是一个关系表达式,用于控制循环结束;控制变量增量,主要是循环变量的自加,步长通常为1(如i++),也可根据需要设定(如,循环控制变量i的增量可以设置为2,i=i+2;)。

其程序执行过程如下:

1) 首先执行初始化操作(仅在循环开始时执行一次);

2) 进行条件表达式计算,若为真,则执行步骤3);否则执行步骤6);

3) 执行循环体语句;

4) 控制变量增量计算;

5) 重复执行步骤2)到步骤4);

6) 结束循环。

举例说明如下:

#include

int main(void)

{

int i;

for(i=0;i<5;i=i+2)

printf("i= %d\n",i);

return 0;

}

在上述程序中,先进行初始化操作,给循环控制变量赋初值为0;然后判断条件表达式是否为真,为真则输出循环控制变量i;然后进行增量计算,接着再次进行条件表达式计算。整个程序循环体执行了三次,分别输出i的值0,2,4。

二、使用注意事项

1、注意for语句括号中三个部分均是语句,用分号“;”隔开。而且,三个语句均可以省略,可以省略部分或全部。

2、循环体尽量设置简洁,不必要的操作尽量安排在循环体之外。如计算1到100的求和,有人写出如下循环:

int i,tmp,sum;

for(tmp=0,sum=0,i=1;i<101;i++)

{

tmp +=i;

sum = tmp;

}

上述循环中,sum=tmp;语句每次循环都要执行一次,极大浪费资源,完全可以放在循环体外,仅赋值一次即可,可以修改成如下形式:

for(tmp=0,i=1;i<101;i++)

{

tmp +=i;

}

sum = tmp;

当然为了节约资源,上述例子中甚至tmp这个中间变量都可以不用,循环体中直接用sum替代tmp变量即可。

3、尽量避免在循环体内修改循环控制变量,以免影响循环次数,达不到预期效果。

4、在多重循环中尽量将最长的循环放置内层,最短的循环放置外层,有利于减少CPU夸切循环层的次数。

5、尽量减少循环的嵌套层次,一般不建议超过3层,否则程序可读性变差,同时影响程序执行效率。若超过3层,建议重新设计循环。

6、有些情况下,适当地采用并行代码可以优化for循环,减少循环次数,提高程序执行效率。如使用注意事项第2条中的例子,计算1到100之间的整数和,可以通过定义几个变量,采用并行代码优化成如下形式:

for(sum1=0,sum2=0,sum3=0,sum4=0,sum=0,i=1;i<101;i=i+4)

{

sum1 +=i;

sum2 +=i+1;

sum3 +=i+2;

sum4 +=i+3;

}

sum=sum1+sum2+sum3+sum4;

好了,关于for语句的用法今天就总结到这,如果大家有任何疑问请留言探讨。我是“C语言知识传播者”,志在瞄准C语言,挖掘和总结C语言的难点和痛点,给C语言编程爱好者和本领域从业人员提供参考,我会用心总结C语言知识的点点滴滴,您的关注是我持续创作的动力,请收藏本文、转发并点赞,希望得到您的持续关注,谢谢!

举报/反馈

c语言中for语句的用法及规则,C语言中for语句用法详解相关推荐

  1. c语言中getenv的作用,C语言putenv()函数和getenv()函数的使用详解

    C语言putenv()函数和getenv()函数的使用详解 C语言putenv()函数:改变或增加环境变量头文件: #include4 定义函数: int putenv(const char * st ...

  2. c++ map用法_Pandas数据处理三板斧——map、apply、applymap详解

    在日常的数据处理中,经常会对一个DataFrame进行逐行.逐列和逐元素的操作,对应这些操作,Pandas中的map.apply和applymap可以解决绝大部分这样的数据处理需求.这篇文章就以案例附 ...

  3. android组件用法说明,Android第三方控件PhotoView使用方法详解

    Android第三方控件PhotoView使用方法详解 发布时间:2020-10-21 15:06:09 来源:脚本之家 阅读:74 作者:zhaihaohao1 PhotoView的简介: 这是一个 ...

  4. latex中if语句怎么用_如果 (If) | Python 中的条件控制语句详解

    点击上方"可乐python说"关注公众号,点击右上角 "..."选择"设为星标"第一时间获取最新分享! 前言 Hi,大家好,我是可乐,生活中 ...

  5. c语言中sign的用法,Excel教程中sign函数用法和实例详解

    第一,sign函数用法说明 excel教程中sign函数用于返回数字的符号.正数为1,零为0,负数为-1. sign函数语法:SIGN(number) SIGN符号函数(一般用sign(x)表示)是很 ...

  6. mybatis select语句会默认带排序吗_MyBatis中#和$的区别详解

    区别 1.#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111& ...

  7. mysql分片建表语句_Mysql元数据如何生成Hive建表语句注释脚本详解

    前言 本文主要给大家介绍了关于Mysql元数据生成Hive建表语句注释脚本的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 最近在将数据从Mysql 等其他关系型数据库 抽取 ...

  8. mysql hive 建表语句_Mysql元数据如何生成Hive建表语句注释脚本详解

    前言 本文主要给大家介绍了关于Mysql元数据生成Hive建表语句注释脚本的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 最近在将数据从Mysql 等其他关系型数据库 抽取 ...

  9. JavaScript循环语句for,while,与break,continue配合案例详解

    目录 for循环 语法: for循环案例 1.简单的for循环 2.使用for循环打印星星 3.使用for循环打印等腰三角形 4.倒三角,与拼成菱形 5.输出1000以内的水仙花数 6.输出九九乘法表 ...

最新文章

  1. Cookie和Session-学习笔记03【Session快速入门、Session细节】
  2. IOS 学习笔记 2015-03-27 我理解的OC-代理模式
  3. android开发学习笔记(一)
  4. 一步步学习SPD2010--第九章节--使用可重用工作流和工作流表单(13)--修改任务表单...
  5. Docker的概念及基本指令学习(从安装、管理、核心概念到docker file 、 服务编排、集群)
  6. 一款 Java 开源的 Spring Boot 即时通讯 IM 聊天系统(源码自取)
  7. win8网速怎么测试软件,Win10怎么测试网速 Win10在线测试网速方法
  8. 前端模块打包工具--webpack
  9. 墙裂推荐6款实用办公软件!超级好用!
  10. python k线形态识别_python量化金融系列-K线分析、及形态捕捉
  11. 洛谷P2678 [NOIP2015 提高组] 跳石头
  12. 配置局域网内电脑快速传输数据
  13. 局域网限速软件_除了Teamviewer,这些优秀的远程软件你用了吗
  14. ue的xml格式转换_迷你档-迷你档(minidown)下载 v2.5官方版--pc6下载站
  15. 基于51单片机的DAC0832波形发生器
  16. 下载谷歌浏览器以及谷歌浏览器不能加载网页问题的解决
  17. Lyapunov stability analysis、LaSalle’s invariance principle、Barbalat’s lemma
  18. 邮箱要钱吗?注册邮箱要钱吗?怎么申请注册邮箱?
  19. 【闲来无事】微博热搜实时数据图表
  20. mrmr 最大关联度-最小冗余度 特征选择

热门文章

  1. flume报错WARN clients.NetworkClient: Error while fetching metadata with correlation id
  2. bfi中文是什么意思_微博里bot是什么意思 流行用语五花八门
  3. 不会就翻翻——我的世界玩家成果链接大全!
  4. 便民,合格证自助打印一体机投用,只花一分钟即可实现领取实体证
  5. 安全狗全力支撑福建省多个单位部门2021年工作开展获多封感谢信
  6. 投标人员不得不了解的投标八大技巧
  7. 如何使用html+css+js 实现动态新年烟花特效及服务器部署
  8. 自动化再加码,国产机器狗进入三岔路口
  9. 六级备考6天|CET-6|听力第一二三四讲|复习回顾|长对话篇章|14:00~16:30
  10. TRAC-IK机器人运动学求解器