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. [CrunchBang]修改win+ubuntu 双 系统菜单的 启动顺序 引导

    说到启动就不得不说GRUB,Linux下大名鼎鼎的启动管理工具(曾经的LILO已经风光不再),当然现在已经是GRUB2了,GRUB2和GRUB最重要的区别就是,GRUB存放系统启动信息的文件为/boo ...

  2. Web Servic和Web API的区别

    Web Service:1.它是基于SOAP协议的,数据格式是XML2.只支持HTTP协议3.它不是开源的,但可以被任意一个了解XML的人使用4.它只能部署在IIS上Web API:1.这是一个简单的 ...

  3. javaIO框架小析

    IO即数据读写.数据是应用的中心要素,而数据读写的能力和可扩展性是编程平台的基础支撑. 概念框架 方式: 字节流 Byte 和 字符流 Char 方向: 输入 Input 和 输出 Output : ...

  4. springmvc 组合注解

    组合注解的意思就是一个注解中包含多个注解.在springmvc 的@RestController中,你就可发现. @Target(ElementType.TYPE) @Retention(Retent ...

  5. CentOS 7下Wireshark捕获USB数据包

    1. 软件准备 安装Wireshark # yum install wireshark wireshark-gnome .csharpcode, .csharpcode pre { font-size ...

  6. 《Java并发编程实战》读书笔记

    Subsections 线程安全(Thread safety)锁(lock)共享对象对象组合基础构建模块任务执行取消和关闭线程池的使用性能与可伸缩性并发程序的测试显示锁原子变量和非阻塞同步机制 一.线 ...

  7. noi 4982 踩方格

    题目链接:http://noi.openjudge.cn/ch0206/4982/ 深搜很好写. DP:O(n) d[i] 为走 I 不的方案数, l[i],r[i],u[i]为第一步走 左,右,上, ...

  8. 初学画布canvas的chapter2

    文本 1.字体属性 context.font = [css font property] ——使用CSS规范,语法跟CSS字体速记符号一致 ——line-height无效,并永远忽略 Context. ...

  9. Open source packages on self-driving car

    Autoware https://github.com/CPFL/Autoware.git Open-source software for urban autonomous driving &quo ...

  10. java实现LIS算法,出操队形问题

    假设有序列:2,1,3,5,求一个最长上升子序列就是2,3,5或者1,3,5,长度都为3. LIS算法的思想是: 设存在序列a. ① 如果只有一个元素,那么最长上升子序列的长度为1: ② 如果有两个元 ...