Menu Close

C语言 for 循环语句及For 循环语句十大注意事项

for循环是“ C”编程中更有效的循环结构。for循环的一般结构如下:

for(表达式 1;表达式 2;表达式 3) 
{
  语句
}
For LOOP 语法

它的执行过程如下:

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

其执行过程可用下图表示。

 

for 语句最简单的应用形式也是最容易理解的形式如下:
for(循环变量赋初值;循环条件;循环变量增量) 语句

for (initial value; condition; incrementation or decrementation )
{
   statements;
}

循环变量赋初值总是一个赋值语句, 它用来给循环控制变量赋初值; 循环条件是一个关系表达式,它决定什么时候退出循环;循环变量增量,定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用“;”分开。

注意事项:

  • for循环的初始值仅执行一次;
  • 条件是一个布尔表达式,每一次执行前和一个固定值进行比较,如果出现false,停止for循环;
  • 初始值递增或递减;
  • for语句每个部分用英文分号“;”区别开。

以下流程图说明了简单的for循环的用法:

例1.打印出1到10

#include<stdio.h>
int main()
{
    int number;
    for(number=1;number<=10;number++)    //for loop to print 1-10 numbers
    {
        printf("%d\n",number);        //to print the number
    }
    return 0;
}

上面C语言程序for循环语句分行打印出 数字 1 – 10.具体执行过程如下:

  1. 声明一个int数据类型的变量;
  2. 在for循环中,在初始化部分,变量初始值设为1;在条件部分,我们指定条件:该变量小于等于10;当条件number小于等于10时,变量加1,如果变量大于10的时候,number不再加1;退出循环;
  3. 在循环的主体中,每一个新行打印一个数字。 我们将值1赋予整数变量,在第一次循环执行后,该变量值将递增,并变为2。现在,变量具有数值2。将重新检查条件,并且由于条件为true,因此将执行循环, 它将在屏幕上打印2。 该循环将继续执行,直到变量的值变为10。此后,循环将终止,并在屏幕上打印一系列的1-10。

例2.打印出1-10

  // Print numbers from 1 to 10
#include <stdio.h>

int main()
{
  int i;

  for (i = 1; i < 11; ++i)
  {
    printf("%d ", i);
  }
  return 0;
}

  • i 被初始化为 1;
  • 评估测试表达式 i < 11。由于 1 小于 11 为真,因此执行 for 循环的主体。这将在屏幕上打印 1(i 的值);
  • 更新语句 ++i 被执行。现在,i 的值将是 2。再次,测试表达式被评估为真,并执行 for 循环的主体。这将在屏幕上打印 2(i 的值);
  • 同样,更新语句 ++i 被执行并且测试表达式 i < 11 被评估。这个过程一直持续到i变成 11 ;
  • 当 i 变为 11 时,i < 11 将为假,并且 for 循环终止。

例3.用户输入一个整数,程序算出1到该数的和

  // Program to calculate the sum of first n natural numbers
// Positive integers 1,2,3...n are known as natural numbers

#include <stdio.h>
int main()
{
    int num, count, sum = 0;

    printf("Enter a positive integer: ");
    scanf("%d", &num);

    // for loop terminates when num is less than count
    for(count = 1; count <= num; ++count)
    {
        sum += count;
    }

    printf("Sum = %d", sum);

    return 0;
}
 

结果

Enter a positive integer: 10 
Sum = 55

For 循环语句十大注意事项

注册用户可见

[content_control]

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);

10) for循环在每个部分中可以有多个用逗号分隔的表达式

for (x = 0, y = num; x < y; i++, y--)
{
statements;
}

11)我们可以把初始表达式放在for loop之外,通过添加分号来跳过初始值表达式。例如:

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

[/content_control]

除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Leave the field below empty!

Posted in C语言教程

Related Posts