for循环的一般形式为:
for(表达式1; 表达式2; 表达式3){
    语句块
}

它的执行过程如下:
1) 先求解表达式1。

2) 求解表达式2,若其值为真(非0),则执行循环体,否则结束循环。

3) 执行完循环体,再求解表达式3。

4) 重复执行步骤 2) 和 3),直到循环结束。

注意:表达式1仅在第一次循环时求解,以后都不会再执行,可以认为这是一个初始化语句。

for循环的执行过程可用下图表示:

用for循环来计算1加到100的值:

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

运行结果:
5050

代码分析:
1) 执行到 for 语句时,先给 i 赋初值1,判断 i<=100 是否成立;因为此时 i=1,i<=100 成立,所以执行循环体。循环体执行结束后(sum的值为1),再计算 i++。

2) 第二次循环时,i 的值为2,i<=100 成立,继续执行循环体。循环体执行结束后(sum的值为3),再计算 i++。

3) 重复执行步骤 2),直到第101次循环,因为此时 i 的值为101,i<=100 不成立,所以结束循环。

整个for语句相当于:

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

由此我们可以总结出for循环的一般形式:
for(循环变量赋初值; 循环条件; 循环变量增量){
    语句块
}
循环变量赋初值总是一个赋值语句,它用来给循环控制变量赋初值;循环条件是一个关系表达式,它决定什么时候退出循环;循环变量增量,定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用分号;分开。

使用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++;
}

所谓死循环,就是循环条件永远为真,循环会一直进行下去,永不结束。死循环对程序的危害很大,一定要避免。

4) 省略了“表达式3(循环变量增量)”,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。例如:

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

5) 省略了“表达式1(循环变量赋初值)”和“表达式3(循环变量增量)”。例如:

for( ; i<=100 ; ){
sum=sum+i;
i++;
}

相当于:

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

6) 3个表达式都可以省略。例如:
    for( ; ; )  语句
相当于:
    while(1)  语句

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

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

8) 表达式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;

9) 表达式2一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其值非零,就执行循环体。例如:

for( i=0; (c=getchar())!='\n'; i+=c );

又如:

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

for循环也可以嵌套使用,例如:

#include <stdio.h>

int main(){
int i, j, k;
printf("i j k\n");
for (i=0; i<3; i++) // 循环①
for(j=0; j<3; j++) // 循环②
for(k=0; k<3; k++) // 循环③
printf("%d %d %d\n", i, j, k);
return 0;
}

1203.4——循环语句 之 for的更多相关文章

  1. 1203.3——循环语句 之 while

    while循环 while循环的一般形式为:    while(表达式){        语句块    }其中表达式称为循环条件,语句块称为循环体. while语句的意思是:先计算表达式的值,当值为真 ...

  2. 【python之路4】循环语句之while

    1.while 循环语句 #!/usr/bin/env python # -*- coding:utf-8 -*- import time bol = True while bol: print '1 ...

  3. python之最强王者(3)——变量,条件、循环语句

    1.Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的 ...

  4. #9.5课堂JS总结#循环语句、函数

    一.循环语句 1.for循环 下面是 for 循环的语法: for (语句 1; 语句 2; 语句 3) { 被执行的代码块 } 语句 1 在循环(代码块)开始前执行 语句 2 定义运行循环(代码块) ...

  5. 详解Python中的循环语句的用法

    一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...

  6. 【java开发】分支语句、循环语句学习

    一.Java分支语句类型 if-else 语句 switch 关于if-esle语句可以拆分为三种 if语句 if(条件){语句块;} if-else语句if(条件语句){语句块;} if-else ...

  7. python3循环语句while

    Python的循环语句有for和while语句,这里讲while语句. Python中while语句的一般形式: while 条件判断 : 语句 需要注意冒号和缩进.另外,注意Python中没有do. ...

  8. 20.SqlServer中if跟循环语句

    --if语句declare @i int begin print @i end else --循环语句 declare @i int begin insert into grade(classname ...

  9. Python学习【第五篇】循环语句

    Python循环语句 接下来将介绍Python的循环语句,程序在一般情况下是按顺序执行的. 编程语言提供了各种控制结构,允许更复杂的执行路径. 循环语句允许我们执行一个语句或语句组多次. Python ...

随机推荐

  1. Tomcat 7.0 进入项目管理页面时的密码问题

    tomcat7 这个版本,官方网下载的原始包项目管理页面的权限和之前版本的配置有点区别. 到Tomcat的conf文件夹下找到tomcat-users.xml文件,有配置权限的配置文件.     ma ...

  2. cocos2dx 音效 粒子 数据存储

    1.音效 引入头文件 #include "simpleAudioEngine.h" 命名空间 using namespace CocosDenshion; //创建一个背景 Siz ...

  3. C#在使用串口读一长段数据时,前面加延时,等串口缓冲全部收到再去读

    Thread.Sleep(3);//延时一会,等接受完成再去读

  4. Oracle11.2.0.4 RAC安装文档

    1 环境配置 参考官方文档<Grid Infrastructure Installation Guide for Linux> 1.1 软件环境 操作系统: [root@howe1 ~]# ...

  5. 利用JS实现闪烁字体

    以下为在JSP文件中,利用JS实现闪烁字体的代码: HTML代码: <div id="blink">一段会闪烁的字</div> JavaScript代码: ...

  6. 将less编译成css的gulp插件

    简介:gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,我们不仅可以很愉快的编写代码, ...

  7. python yield 理解

    在别人的代码中看到yield这个关键字,看了几篇资料,说一下个人理解. 包含yield 关键字的函数成为一个迭代器,yield跟return的位置一样,只不过每次返回结果后,并没有退出,而是等待下一次 ...

  8. 文件:一个任务 - 零基础入门学习Python029

    文件:一个任务 让编程改变世界 Change the world by program 一个任务 这节课,我们需要一起来完成一个任务:将文件(record.txt)中的数据进行分割并按照以下规律保存起 ...

  9. 开心菜鸟学习系列-----javascript(2)

    最小全局变量 :        1)每个javascript环境有一个全局对象,当你在任意的函数外面使用this的时候可以访问到,你创建的每一个全部变量都成了这个全局对象的属性,在浏览器中,方便起见, ...

  10. cf C. Xenia and Weights

    http://codeforces.com/contest/339/problem/C #include <cstdio> #include <cstring> #includ ...