for循环格式:

 for (初始化表达式;条件表达式;循环后增量表达式)
{
语句;
...
}

  条件表达式: 和while, dowhile一样, 只有条件满足才会执行循环体

  初始化表达式: 在整个for循环的生命周期中, 初始化表达式只会执行一次

  循环后增量表达式: 会在每次循环体之后完毕之后调用一次

for循环执行说明:

  for循环开始时,会先执行初始化表达式,而且在整个循环过程中只执行一次初始化表达式

  接着判断循环条件表达式,如果条件成立,就会执行循环体中的语句(“循环体”就是for后面大括号{}中的内容)

  循环体执行完毕后,接下来会执行循环后的操作表达式,然后再次判断条件,重复上述过程,直到条件不成立就结束for循环

for循环应用:

能用while做得用for都能做, for相当于while的升级版

以后如果定义的便利仅仅用于控制循环什么时候结束, 循环结束之后就不在使用了, 那么可以使用for循环

如果将用于控制循环的变量定义在for循环中, 那么循环结束了, 变量也释放了

for循环注意点:

    // 1.任何数值都有真假新
for (; ; ) {
printf("lnj");
}
// 2.for也可以省略大括号, for省略大括号的时候, 只会执行离他最近的一条语句
for (;;)
printf("lnj");
printf("other");
// 3.作用域混乱
for (;;)
int a = ;
printf("a = %i\n", a);
// 5.;空语句
for (;;);
{
printf("lnj");
}
// 6.其实, 初始化表达式和循环后增量表达式可以写多条语句, 语句之间用,号连接
for (int i = , j = ; i < ; i++, j++)
{
printf("i = %i j = %i\n", i, j);
}
// 最简单的死循环
for(;;);
for(;;); // 注意: for循环中的条件表达式默认为真

for循环嵌套:  

    // 问题: 会打印几次
// 结论: 循环嵌套执行的次数等于 : 外循环执行的次数 * 内循环执行的次数
for (int i = ; i < ; i++) {
for (int j = ; j < ; j++) {
printf("i = %i , j = %i\n", i, j);
}
}

使用举例:

    /* 1.
好友列表1
好友1
好友2
好友列表2
好友1
好友2
好友列表3
好友1
好友2
*/
for (int i = ; i < ; i++) {
printf("好友列表%i\n", i + );
for (int j = ; j < ; j++) {
printf(" 好友%i\n", j + );
}
}
/* 2.
打印:
***
***
***
打印3行
每行3列
*/
// 外循环控制行数
// 内循环控制列数
for (int j = ; j < ; j++) {
for (int i = ; i < ; i++) {
printf("*");
}
printf("\n");
}
/* 3.
***
**
*
打印3行
每行最多3列(第一行3列)
*/
// 只要以后看到很多行很多列, 那么第一时间就要想到循环嵌套
for (int i = ; i < ; i++) {
for (int j = i; j < ; j++) {
printf("*");
}
printf("\n");
}
/* 4.
*
**
***
*/
for (int i = ; i < ; i++) {
for (int j = ; j <= i; j++) {
printf("*");
}
printf("\n");
}
/* 5.
--*
-***
*****
*/
for (int i = ; i < ; i++) {
for (int j = i; j < ; j++) {
printf("-");
}
for (int n = ; n <= i * ; n++) {
printf("*");
}
printf("\n");
}  

规律:

  尖尖朝上: 修改内循环的 条件表达式

  尖尖朝下: 修改内循环的 初始化表达式

  (但是也不一定非要这样)

使用举例:

/*
打印乘法表:
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
观察发现有很多行很多列--》循环嵌套
尖尖朝上,让内循环条件表达式随着外循环i改变
输出的结果等于 内循环的变量 * 外循环的变量
*/
for (int i = ; i <= ; i++) {
for (int j = ; j <= i; j++) {
printf("%d * %d = %d \t", j, i, (j * i));
}
printf("\n");
}

C语言基础--for循环的更多相关文章

  1. [08 Go语言基础-for循环]

    [08 Go语言基础-for循环] 循环 循环语句是用来重复执行某一段代码. for 是 Go 语言唯一的循环语句.Go 语言中并没有其他语言比如 C 语言中的 while 和 do while 循环 ...

  2. 电脑小白学习软件开发-C#语言基础之循环重点讲解,习题

    写代码也要读书,爱全栈,更爱生活.每日更新原创IT编程技术及日常实用视频. 我们的目标是:玩得转服务器Web开发,搞得懂移动端,电脑客户端更是不在话下. 本教程是基础教程,适合任何有志于学习软件开发的 ...

  3. C语言基础--while循环

    while循环格式: while (条件表达式) { 语句; ... }   执行说明: while是对给定的条件进行判断, 如果条件满足, 就执行while后面大括号中的内容, 执行完毕之后会再次判 ...

  4. C语言基础知识-循环结构

    用while打印出1~100之间7的倍数    int i = 1;     while循环是当条件表达式的结果为真时,执行大括号里面的循环体,重复执行直到条件表达式的结果为假时结束循环.     w ...

  5. 【C语言基础】循环体系

    1.For循环结构: For循环的一般形式为: for (表达式1 初始化:判断条件:自增自减) { 语句块 } 2.while循环结构: while循环的一般的形式为: 表达式1 初始化 while ...

  6. C语言基础:常见循环语句 分类: iOS学习 c语言基础 2015-06-10 21:46 13人阅读 评论(0) 收藏

    for语句 for( 初始化表达式; 循环判断条件  ;增量表达式); while(条件表达式){ 循环体; } 先判断条件表达式,如果为真就执行循环体,执行完再去判断条件表达式 do{ 循环体; } ...

  7. Java入门 - 语言基础 - 09.循环结构

    原文地址:http://www.work100.net/training/java-loop.html 更多教程:光束云 - 免费课程 循环结构 序号 文内章节 视频 1 概述 2 while循环 3 ...

  8. 【C语言基础】unsigned short类型用于循环的一个难点

    我在我的知识星球:“C语言解惑课堂”里的第一篇提出一个问题:[第1篇][C语言基础][unsigned short类型用于循环的一个难点]要查看更多的C语言难点解析或者需要提问的同学,微信扫扫文末我的 ...

  9. C语言基础回顾

    第一章 C语言基础 1.  C语言编译过程 预处理:宏替换.条件编译.头文件包含.特殊符号 编译.优化:翻译并优化成等价的中间代码表示或汇编代码 汇编:生成目标文件,及与源程序等效的目标的机器语言代码 ...

随机推荐

  1. 曲线提取数据Engauge Digitizer

    可导出CSV格式数据 其它参考: http://blog.sina.com.cn/s/blog_4ae65b4d0100z8cg.html 其它曲线提取数据的软件还有: GetData.Windig ...

  2. 面试题-链表反转c实现

    // ListReverse.cpp : Defines the entry point for the console application.// #include "stdafx.h& ...

  3. Apple个人(Individual)开发者账号升级公司(Company)开发者账号

    1.拨打苹果针对中国区开发者的咨询服务热线:4006 701 855: 2.简单向对方(中文不太标准,但听懂没问题)说明意图后,会要求提供: (1)之前申请IDP时purchase form上的per ...

  4. Linux文件管理相关命令

    Linux文件管理相关命令   作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux文件管理背景知识之后, 我们可以 ...

  5. 《BI那点儿事》数据流转换——逆透视转换

    逆透视转换将来自单个记录中多个列的值扩展为单个列中具有同样值的多个记录,使得非规范的数据集成为较规范的版本.例如,每个客户在列出客户名的数据集中各占一行,在该行的各列中显示购买的产品和数量.逆透视转换 ...

  6. LTE Module User Documentation(翻译9)——Using the EPC with emulation mode

    LTE用户文档 (如有不当的地方,欢迎指正!) 15 Using the EPC with emulation mode(使用仿真方式的 EPC)     在上一节中,我们使用点对点链路连接基站和服务 ...

  7. 阿里云对象存储OSS————跨域资源共享(CORS)(m3u8 无法加载m3u8:跨域访问被拒绝)

    今天在做视频直播录像的时候,添加一个录制APP的.M3U8文件到OSS的一个test文件中存储,结果是访问不到了: 提示:无法加载m3u8:跨域访问被拒绝!!!!! 项目代码测试地址:https:// ...

  8. FormData、Blob、File、ArrayBuffer数据类型

    XMLHttpRequest 1.0 1.0 中xmlhttpRequest有2个重要的返回属性,reposeText,reposeXml.下面的数据类型都是2.0新增的 FormData对象 我们应 ...

  9. mysql简介

    1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数 ...

  10. 获取sim卡序列号

    //获取sim卡序列号TelephoneManager TelephonyManager manager = (TelephonyManager)getSystemService(Context.TE ...