C语言之for循环语句

简介: 帮你快速上手for语句,避免for语句的一些常犯错误,使你的学习事半功倍(建议初学者收藏)

一、for语句的一般形式

1.说明

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

            循环体语句;

}

其中表达式1为赋初值表达式(可以是一个i=1的赋值表达式也可以是i=1,sum=0的逗号表达式),用于对循环变量赋初值(是循环的开始)。

    表达式2为循环条件表达式,如果满足该表达式则循环,不满足则跳出循环(控制着循环是否进行)。

    表达式3为增值表达式,用来修改循环变量(控制着循环次数,如果没有增值表达式就会进入死循环)。

2.实例
输入一个数,求它的阶乘。

3.代码

#include "stdio.h"
 
int main() {
    int n;
    int jc = 1;
    scanf("%d", &n);
 
    for (int i = 1; i <= n; i++) {
        jc *= i;
    }
 
    printf("%d!=%d", n, jc);
    return 0;
}

4.运行结果
image.png

5.易错点

    1.再给循环变量赋初值的时候要考虑到是否让循环变量参与计算,比如本题,i参加了阶乘的计算,如果再把它从0开始的话,不管我们的n输入什么值,阶乘都为0,所以这个时候就要把它赋值为1。

    2.如果循环变量不是用的前面定义好的变量,那么这里就不能忘了在赋初值表达式加int。

    3.注意三个表达式之间是;而不是,。

    4.for(表达式1,表达式2,表达式3)后面是{而不是;。

    5.for和if一样,一种是带{},一种是不带{},带{}的如果满足for的循环条件表达式则执行{}里面的语句,不带{}的只有下面的一行代码属于for循环体语句里的内容(注意这里判断一行语句并非是真正的行列里的一行而是依靠;区分的,每行语句以分号结尾) 。

6.相关报错
1.[错误] 'i' 未在此范围内声明

    原因:未在i前面加int

    解决办法:在i前面加int

2.[错误] 期待 ';' 在此之前: '<=' 符号

    原因:将for的三个表达式之间的;写为,

    解决办法:将,改为;
  1. [错误] name lookup of 'i' changed 对于 ISO 'for' scoping [-fpermissive]

    原因:在for(表达式1,表达式2,表达式3)后面加了;

    解决办法:将for(表达式1,表达式2,表达式3);改为for(表达式1,表达式2,表达式3)

4.[错误] 期待 ';' 在此之前: ')' 符号

    原因:for表达式里必须有两个;

    解决办法:在)前面加;

二、省略式
1.说明

    for循环语句的三个表达式均可省略,但是表达式之间的分号不能省略。

2.省略
1.省略表达式1

    for(int i=0;i<n;i++)可以变为:

    int i=0;

    for(;i<n;i++)

2.省略表达式2

     for(int i=1;i<=n;i++){sum+=i;}可以变为:

    for(int i=1;;i++){

            if(i>n){break;}

            sum+=i;

}

3.省略表达式3

    for(int i=1;i<=n;i++){sum+=i;}可以变为:

    for(int i=1;i<=n;){

            sum+=i;

            i++;

}

三、小试牛刀
1.题目
爱因斯坦曾提出这样一个数学题:有一条长台阶,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后1阶不剩。编写程序计算这条阶梯共有多少台阶。

2.代码

#include "stdio.h"
 
int main() {
    int x;
 
    for (int i = 1;; i++) {
        x = 7 * i;
 
        if (x % 2 == 1 && x % 3 == 2 && x % 5 == 4 && x % 6 == 5) {
            printf("x=%d", x);
            break;
        }
    }
 
    return 0;
}

3.运行结果
image.png

相关文章
|
5月前
|
C语言
C语言之循环语句
C语言之循环语句
70 0
|
5月前
|
JavaScript C语言
C语言/JS循环语句执行速度控制 | C语言爱心
C语言/JS循环语句执行速度控制 | C语言爱心
45 0
|
5月前
|
C语言 数据安全/隐私保护
C语言初阶②(分支语句和循环语句)编程练习
C语言初阶②(分支语句和循环语句)编程练习
53 1
|
5月前
|
算法 C语言 索引
C语言中的for循环:深入探索与实用技巧
C语言中的for循环:深入探索与实用技巧
72 1
|
5月前
|
程序员 C语言
深入理解C语言中的for循环
深入理解C语言中的for循环
228 2
|
5月前
|
C语言 数据安全/隐私保护
C语言初阶①(分支语句和循环语句)知识点(下)
C语言初阶①(分支语句和循环语句)知识点
39 1
|
5月前
|
C语言
初识C语言~循环语句
初识C语言~循环语句
|
4月前
|
C语言
C语言控制流程详解:分支与循环语句
C语言控制流程详解:分支与循环语句
31 0
|
5月前
|
C语言
【C生万物】C语言分支和循环语句
【C生万物】C语言分支和循环语句
|
5月前
|
存储 C语言
C语言for循环详解
C语言for循环详解