文章目录

  • 1.前言
  • 2.不同C语言对for循环形式的影响
  • 3.C 语言循环的一般形式
  • 4.常用C语言for循环范式
    • 1.循环变量每次递增不为1
    • 2.同时控制多个循环变量
    • 3. 表达式2中的真假判断形式可以更加多样

1.前言

for循环在C语言中是经常被使用的,但大家最熟悉的使用方法还是如下所示的经典普通形式。

int i;
for (i = 0; i < 5; i++)
{printf("%d\n",i);
}

下面笔者结合自己的经验来总结一下在C语言for循环中存在的一些使用形式。

2.不同C语言对for循环形式的影响

在C89中,我们的循环变量 i 必须要在循环体之前定义好,因此在C89规范中,我们的循环应该是如下格式

int i;
for (i = 0; i < 5; i++)
{printf("%d\n",i);
}

如果你下成了下面这样,是会报错的

for (int i = 0; i < 5; i++)
{printf("%d\n",i);
}

在后面的C99规范中,我们的循环可以写成如下格式

for (int i = 0; i < 5; i++)
{printf("%d\n",i);
}

3.C 语言循环的一般形式

for (表达式1; 表达式2; 表达式3)
{循环语句;
}  for循环 的执行过程如下
1. 先执行表达式1,一般我们在这给循环变量赋初值;
2. 再执行表达式2,判断其是否为真,为真则执行循环语句,执行完循环语句后执行表达式3,为假则结束循环,转到第5步;
3. 执行表达式3;
4. 转回上面第2步继续执行;
5. 循环结束,执行for语句下面的一个语句。

for语句最简单的应用形式也是最容易理解的形式如下:
for(循环变量赋初值; 循环条件; 循环变量增量) 语句
循环变量赋初值总是一个赋值语句,它用来给循环控制变量赋初值;循环条件是一个关系表达式,它决定什么时候退出循环;循环变量增量,定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用分号(;)分开。

for( i=1; i<=100; i++ )  sum=sum+i;

先给i赋初值1,判断i是否小于等于100,若是则执行语句,之后值增加1。再重新判断,直到条件为假,即i>100时,结束循环。相当于:

i=1;
while(i<=100){sum=sum+i;i++;
}

对于for循环中语句的一般形式,就是如下的while循环形式:
表达式1;
while(表达式2){
语句
表达式3;
}

使用for语句应该注意:

  1. for循环中的“表达式1(循环变量赋初值)”、“表达式2(循环条件)”和“表达式3(循环变量增量)”都是选择项,即可以缺省,但分号(;)不能缺省。

  2. 省略了“表达式1(循环变量赋初值)”,表示不对循环控制变量赋初值。

  3. 省略了“表达式2(循环条件)”,则不做其它处理时便成为死循环。例如:

for( i=1; ; i++ )  sum=sum+i;

相当于:

i=1;
while(1){sum=sum+i;i++;
}
  1. 省略了“表达式3(循环变量增量)”,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。例如:
for( i=1; i<=100 ; ){sum=sum+i;i++;
}
  1. 省略了“表达式1(循环变量赋初值)”和“表达式3(循环变量增量)”。例如:
for( ; i<=100 ; ){sum=sum+i;i++;
}

相当于:

while(i<=100){sum=sum+i;i++;
}
  1. 3个表达式都可以省略。例如:
    for( ; ; ) 语句
    相当于:
    while(1) 语句

  2. 表达式1可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。例如:

for( sum=0; i<=100; i++ )  sum=sum+i;
  1. 表达式1和表达式3可以是一个简单表达式也可以是逗号表达式。
for( sum=0,i=1; i<=100; i++ )  sum=sum+i;

或:

for( i=0,j=100; i<=100; i++,j-- )  k=i+j;
  1. 表达式2一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其值非零,就执行循环体。例如:
for( i=0; (c=getchar())!=’\n’; i+=c );

又如:

for( ; (c=getchar())!=’\n’ ; )printf("%c",c);

循环的嵌套

#include <stdio.h>
int main(void){int i, j, k;printf("i j k\n");for (i=0; i<2; i++)for(j=0; j<2; j++)for(k=0; k<2; k++)printf("%d %d %d\n", i, j, k);return 0;
}

4.常用C语言for循环范式

通过上面我们对for循环使用的一般形式的介绍,我们对for循环的普通使用应该很熟悉了,下面我们来看看几种常见的for循环使用方法。

1.循环变量每次递增不为1

比如要打印100以内的奇数

#include "stdio.h"int main() {for (int i = 1; i < 100; i+=2) {printf("%d\n",i);}
}

当然我们也可以写成下面这种形式,

#include "stdio.h"int main() {for (int i = 1; i < 100; ) {printf("%d\n",i);i+=2;}
}

2.同时控制多个循环变量

#include "stdio.h"int main() {for (int i = 1, j =2; i < 100; i+=2, j+=2) {printf("i:%d\n",i);printf("j:%d\n",j);}
}

注意表达式里的 int i = 1, j =2 不能写成 int i = 1, int j =2 ,否则会报错,从这里我们也可以看出,如果前面使用了类型定义(比如本文中的int),那后面的变量类型就必须和该类型一致。

如果想使用两个不一样的变量类型,那就不应该在表达式1里面定义变量,而应该这之前就将这些变量定义好。

#include "stdio.h"int main() {int i;char j;for (i = 1, j =2; i < 100; i+=2, j+=2) {printf("i:%d\n",i);printf("j:%c\n",j);}
}

3. 表达式2中的真假判断形式可以更加多样

一般我们在使用for循环中,我们经常判断某个循环变量和某个值得大小来判断真假,但其实,只要是一个表达式或者逻辑表达式,都可以放在表达式2中,这样我们可以更加灵活的设置循环终止条件。

玩转C语言for循环相关推荐

  1. 零基础玩转C语言系列第一章——初始C语言(上)

    目录 一.如何学好C语言? 1.鼓励你,为你叫好. 2.挤时间学习 3.学好编程,不仅仅是学好C语言 二.初始C语言 本章目标 本章重点 1.什么是C语言? 2.第一个C语言程序 3.数据类型 4.变 ...

  2. Java语言的循环控制结构

    Java语言的循环控制结构 循环控制结构:是在一定条件下,反复执行某段程序的流程结构,被反复执行的程序称为循环体.循环控制结构是程序中非常重要和基本的一种结构,它是由循环语句来实现的. Java 的循 ...

  3. c语言for循环的第三句,for循环语句的用法

    for循环有三种结构:列表for循环,不带列表for循环和类C风格for循环. do和done之间的命令成为循环体,执行次数和list列表中常熟或字符串的个数相同.for循环,首相是将in后list的 ...

  4. 玩转C语言之自定义数据类型-typedef

    玩转C语言之自定义数据类型-typedef 1 引言 引言:在C语言中没有提供字节类型,如果在工程中需要使用表示字节的变量时,该怎么办呢? 我们知道 1 个字节占用 8 个二进制位空间,解决这个问题的 ...

  5. c语言for循环说课稿,C语言FOR循环说课稿.docx

    C语言FOR循环说课稿 各位评委老师上午好,我今天说课的内容是"FOR循环"(板书),下面我将从教材的地位及作用.学生学情.教学目标.教学重难点.教法.学法.教学过程.教学效果的预 ...

  6. c语言 程序循环,C语言程序设计-循环例子

    <C语言程序设计-循环例子>由会员分享,可在线阅读,更多相关<C语言程序设计-循环例子(28页珍藏版)>请在人人文库网上搜索. 1.C 语言程序设计基础篇,第 7 章 简单程序 ...

  7. 《零基础看得懂的C语言入门教程 》——(七)C语言的循环分分钟上手

    一.学习目标 了解循环的使用方法 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. 第一篇:(一)脱离学习误区 第二篇:(二)C语言没那么难简单开发带你了解流程 第三篇:(三)轻轻松 ...

  8. c语言 char c1,c2; for (c1='0',C语言-5循环结构(PPT)复习课程.ppt

    C语言-5循环结构(PPT)复习课程.ppt 第五章 循环结构程序设计;课程引入;第五章 循环结构程序设计;5.1 while 语句;例1:求;1. do-while循环语句的形式 do 循环体 wh ...

  9. C语言for循环的嵌套例题,c语言 for循环的嵌套(含答案)

    c语言 for循环的嵌套(含答案) 第 33.34 课时 for 循环的嵌套实验题一:1.下面程序的功能是计算:至 50 中是 7 的倍数的数值之和,请选择填空.D#include main() in ...

最新文章

  1. Java设计模式(代理模式-模板方法模式-命令模式)
  2. C语言 基础60题(5)
  3. PHP自动加载上——spl_autoload_register
  4. [蓝桥杯][算法提高VIP]分分钟的碎碎念-dfs
  5. TortoiseGit + GitHub 快速上手指南
  6. CentOS 安装VNC
  7. android音频测试方法,Android左右声道音频文件测试
  8. eclipse 集成svn客户端_SVN的介绍以及使用
  9. 用CommonDialog公共对话框选取多个文件
  10. 星环大数据使用经验总结
  11. 手工制作夜光星星的方法
  12. 麻省理工公开课人工智能笔记六
  13. 小程序开发笔记(二):微信小程序富文本编辑器editor的使用
  14. 我在B站读大学,大数据专业
  15. 做好这三步让你云主机更安全!
  16. iOS游戏开发之使用 Spritekit 框架和 Swift 的 iOS 2D 太空射击游戏(教程含源码)
  17. smarty引入html,php用Smarty模板生成html文件
  18. 使用antd-pro组件 实现图片上传和图片编辑
  19. 千元级智能门锁性价比革命,欧瑞博小金刚C1全球首发
  20. xp职称计算机考试题库,全国职称计算机考试题库(WindowsXP模块)

热门文章

  1. 谷歌设计规范_一个优秀的UI设计师整理的设计规范汇总,收藏起来!
  2. 浅谈医疗信息化安全的防御体系
  3. mtcnn 相关代码解析
  4. 自如蛋壳抢占租房市场 房租上涨是市场需求还是恶性竞争的结果呢?
  5. CMU 15-445/645 Lab2-B+Tree Index
  6. xp框架下载官方_微软windows10官方系统去哪里下载?电脑系统一定要用原版的
  7. Multi-tissue transcriptome analyses identify genetic mechanisms underlying neuropsychiatric traits
  8. 郑州计算机专业机构学校,河南哪些大学里有计算机专业
  9. esp-idf版本更新及切换方法
  10. 使用python语言实现简单的学生试卷批阅