目录

  • 1 第一章  C语言概述
    • 1.1 第一节  C语言的产生和发展
    • 1.2 第二节  C语言的特点
    • 1.3 第三节  两个简单的C程序
    • 1.4 第四节  C程序的上机步骤
    • 1.5 第五节  Dev-C++介绍
    • 1.6 第六节  VC2010学习版介绍
    • 1.7 第七节  宏定义和文件包含
    • 1.8 本章小结
    • 1.9 本章单元测试
  • 2 第二章  基本数据类型与简单程序设计
    • 2.1 第一节  C语言的基本数据类型
    • 2.2 第二节  常量
    • 2.3 第三节  变量
    • 2.4 第四节  赋值语句
    • 2.5 第五节  数据输出
    • 2.6 第六节 数据输入
    • 2.7 第七节  运算符
    • 2.8 第八节  常用的数学函数
    • 2.9 第九节  顺序结构程序设计
    • 2.10 本章小结
    • 2.11 本章单元测试
  • 3 第三章  分支结构程序设计
    • 3.1 第一节  关系表达式和逻辑表达式
    • 3.2 第二节  if单分支语句
    • 3.3 第四节  if双分支语句
    • 3.4 第五节  if多分支语句
    • 3.5 第六节  case多分支语句
    • 3.6 第七节  分支结构程序设计实例
    • 3.7 本章小结
    • 3.8 本章单元测试
    • 3.9 书中本章习题答案
  • 4 第四章  循环结构程序设计
    • 4.1 第一节  为什么需要循环控制
    • 4.2 第一节  while循环
    • 4.3 第二节  do ... while循环
    • 4.4 第三节  for循环
    • 4.5 第四节  多重循环
    • 4.6 第五节  break语句和continue语句
    • 4.7 第六节  循环结构程序设计实例
    • 4.8 本章小结
    • 4.9 书中本章习题答案
  • 5 第五章 数组
    • 5.1 第一节  一维数组的定义和使用
    • 5.2 第二节  二维数组的定义和使用
    • 5.3 第三节  字符数组的定义和使用
    • 5.4 第四节  数组的应用举例
  • 6 第六章  函数
    • 6.1 第一节  函数的定义
    • 6.2 第二节  函数的调用
    • 6.3 第三节 数组作为函数参数
    • 6.4 第四节  变量的作用域
    • 6.5 第五节 变量的存储类别
    • 6.6 第六节 函数应用实例
  • 7 第七章 结构体和共用体
    • 7.1 第一节  概述
    • 7.2 第二节  定义结构体变量的方法
    • 7.3 第三节 结构体变量的引用
    • 7.4 第四节 结构体数组
    • 7.5 第五节 共用体
    • 7.6 第六节  结构体和共用体应用实例
  • 8 第八章 指针
    • 8.1 第一节  指针的概念
    • 8.2 第二节  指向简单变量的指针
    • 8.3 第三节 指向数组的指针变量
    • 8.4 第四节  指向字符串的指针变量
    • 8.5 第五节 指针作为函数参数
    • 8.6 第六节  指向结构体的指针变量
    • 8.7 第七节 指针应用实例
  • 9 第九章  文件
    • 9.1 第一节  文件概述
    • 9.2 第二节  文件的打开和关闭
    • 9.3 第三节 文件的读/写函数
    • 9.4 第四节  文件定位函数
    • 9.5 第五节  文件应用实例
  • 10 附录
    • 10.1 附录A  基本字符ASCII码表(0~127)
    • 10.2 附录B  运算符优先级表
    • 10.3 附录C 常用C库函数表
    • 10.4 附录D  编译常见错误提示
    • 10.5 附录E  常见C语言英语单词
    • 10.6 附录F  如何从十进制转换为二进制
    • 10.7 附录G  如何把二进制数转化为十进制数
    • 10.8 附录H  什么是编译器
    • 10.9 附录I  与编译器相关的几个知识点
第三节  for循环
  • 1 文字讲解
  • 2 视频讲解
  • 3 拓展资料

一、for语句的一般形式

for语句的一般形式:

    for( 表达式1; 表达式2; 表达式3 ) 

     {

            语句序列

     }

说明:在C语言中,for语句使用最为灵活,它完全可以取代 while 语句。

二、for语句的执行过程

1、for语句的流程图如下


2、for语句执行过程如下:

1) 先求解表达式1。

2) 求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第3)步;若其值为假(0),则结束循环,转到第5)步。

3) 求解表达式3。

4) 转回上面第2)步继续执行。

5) 循环结束,执行for语句下面的一个语句。

三、for语句的使用说明

1、for语句最简单的应用形式也是最容易理解的形式如下:

for( 循环变量赋初值;循环条件;循环变量增量 ) 语句;

2、循环变量使用说明

① 循环变量赋初值总是一个赋值语句, 它用来给循环控制变量赋初值; 

② 循环条件是一个关系表达式,它决定什么时候退出循环;

③ 循环变量增量,定义循环控制变量每循环一次后按什么方式变化。

④ 这三个部分之间用“;”分开。

   例如:

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

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

相当于:

  1. i=1;

  2. while(i<=100)

  3.  {    sum=sum+i;

  4.        i++;

  5. }


四、与for循环等价的while循环

对于for循环中语句的一般形式,就是如下的while循环形式:

  1. 表达式1;

  2. while( 表达式2 )

  3. {   语句

  4.      表达式3;

  5. }


五、for循环注意事项

例4-4  从键盘上输入10个整数,求其和。

参考源程序如下:

  1. #include  <stdio.h>

  2. #include  <conio.h>

  3. main( )

  4. {

  5.     int  i, num, sum;

  6.     printf("从键盘上输入10个整数:\n");

  7.     sum = 0;

  8.     for(i=1; i<=10; i++)

  9.     {

  10.           scanf("%d", &num );

  11.           sum = sum + num;

  12.     } 

  13.     printf("这10个整数的和为: %d\n", sum);

  14.     getch( );

  15. }

运行结果如下:



注意1: 

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

注意2: 

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

注意3: 

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

           例如:

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

相当于:

  1. i=1;

  2. while( 1 )

  3. {

  4.     sum=sum+i;

  5.     i++; 

  6. }

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

例如:

  1. for( i=1; i<=100;  )

  2. {   

  3.        sum=sum+i;

  4.        i++;

  5. }

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

例如:

  1. for( ; i<=100; )

  2. {  sum=sum+i;

  3.     i++;

  4. }

相当于:

  1. while( i<=100 )

  2. {

  3.      sum=sum+i;

  4.      i++;

  5. }

注意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语句编程实例

例4-5  从键盘上输入若干个整数,直到输入0为止,求它们的乘积。

参考源程序如下:

  1. #include  <stdio.h>

  2. #include  <conio.h>

  3. main( )

  4. {

  5.        int  n;

  6.        long  t = 1;

  7.        printf("输入若干个整数,直到输入0为止\n");

  8.        scanf("%d", &n);

  9.         for(; n != 0; )   //可以用 while( n != 0 ) 替换

  10.        {

  11.               t = t * n;

  12.               scanf("%d",&n);

  13.        }

  14.        printf("%ld \n", t);

  15.        getch( );

  16. }

运行结果如下:


运行过程如下:

表4-3   例4-5的运行过程
变量名tn变量名tn
初始状态15第2轮循环5*4=207
第1轮循环1*5=54第3轮循环20*7=1400