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. [python]使用virtualenv处理python版本问题

    1. 更新virutalenv $ sudo easy_install --upgrade virtualenv   2. 新建virtualenv实例, 确保在your home directory ...

  2. 十一、Java基础---------内部类与匿名内部类

    内部类分为普通内部类(有名)和匿名内部类.普通内部类分为成员内部类.局部内部类.静态内部类(嵌套内部类).顾名思义,内部类就是定义在一个类内部的类.什么时候都会使用内部类呢?当我们定义一个类,发现内部 ...

  3. Console API 与命令行

    一.Console API 当打开 firebug (也包括 Chrome 等浏览器的自带调试工具),window 下面会注册一个叫做 console 的对象,它提供多种方法向控制台输出信息,供开发人 ...

  4. Json.net对于导航属性的处理(解决对象循环引用)

    对于两张表A.B多对多的关系中,A的导航属性中有B,B的导航属性中有A,这样Json.net对A或者B对象序列化时会形成死循环 所以对于导航属性要加标签 首先在A.B实体类工程(Model)中引用Js ...

  5. 如何知道btree树的高度

    来自网络,总结到这里: 当我想看btree树高度的时候,筛选出来这篇文章"为什么 B-tree 在不同著作中度的定义有一定差别?",知道了高度的算法是这个公式:但是里面又提高t和出 ...

  6. vlc播放yuv文件

    vlc.exe --demux rawvideo --rawvid-fps 25 --rawvid-width 480 --rawvid-height 272 --rawvid-chroma I420 ...

  7. [转]Setup-Subversion-1.6.5+TortoiseSVN-v1.6.5

    转载地址:http://xietingfengsxm.blog.163.com/blog/static/994118512010729111624385/ 开发环境: myEclipse6.5+ecl ...

  8. 浙江理工2015.12校赛-G Jug Hard

    Jug Hard Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1172 Solved: 180 Description You have two e ...

  9. 【20160924】GOCVHelper MFC增强算法(4)

    //string替换     void string_replace(string & strBig, const string & strsrc, const string & ...

  10. nwjs如何打包文件为exe文件并修改exe图标

    1.下载nw.js,如果是SDK版的可以调试页面,打包后可不可以调试还没有试,不是SDK的话没有调试选项,试了一下,打包后的文件也一样调试不了. 2.把要打包的文件和package.json都放在nw ...