9·while循环,do while循环,for循环

12 阅读3分钟

屏幕截图 2025-07-18 111629.png

死循环

#include <stdio.h>
int main()
{
    //while循环
    int i;
    printf("请输入一个整数:");
    scanf("%d",&i);
    while(i<10)//该括号中的东西若为真则触发下述的循环
    {
        printf("hello world\n");
    }
    return 0;
}
#include <stdio.h>
int main()
{
    int a;
    printf("请输入一个整数:\n");
    printf("1.机票查询\n");
    printf("2.酒店预订\n");
    printf("3.火车票查询\n");
    printf("4.退出\n");
    while (1)
    {
        scanf("%d", &a);
        if (a == 1)
        {
            printf("机票查询\n");
        }
        else if (a == 2)
        {
            printf("酒店预订\n");
        }
        else if (a == 3)
        {
            printf("火车票查询\n");
        }
        else if (a == 4)
        {
            printf("退出\n");
            break;
        }
        else if (a > 4 || a < 1)
        {
            printf("输入错误,请重新输入\n");
        }
    }
    return 0;
}

指定循环的次数

#include <stdio.h>
int main()
{
    //while循环
    //死循环十次然后跳出
    int i=0;
    while(1)
    {
        printf("hello world\n");
        i++;
        if(i==10)
        {
            break;
        }
    }
    return 0;
}
#include <stdio.h>
int main()
{
    //改变执行条件
    int i = 5;
    while(i--)//i--先执行后判断 因此第一次输入时是5
    {
        printf("hello world\n",i);
    }
    return 0;
}

屏幕截图 2025-07-18 113935.png

#include <stdio.h>
int main()
{
    int i=1;
    while(i <= 10)
    {
        printf("%d\n",i);
        i++; //i=i+1;
    }
    return 0;
}
#include <stdio.h>
int main()
{
    int i = -5;
    while(i <= 5)
    {
        printf("%d\n",i);
        i++; 
    }
    return 0;
}

屏幕截图 2025-07-18 115549.png

#include <stdio.h>
int main()
{
    int i = 10;
    while(i >= 1)
    {
        printf("%d\n",i);
        i--; 
    }
    return 0;
}
#include <stdio.h>
int main()
{
    int i = 1;
    while(i <= 100)
    {
        if(i % 2 == 1)
        {
        printf("%d\n",i);
        }
        i++; 
    }
    return 0;
}
#include <stdio.h>
int main()
{
    int i = 1;
    while(i <= 100)
    {
        if(i % 3 == 0 && i % 5 == 0)
        {
        printf("%d\n",i);
        }
        i++; 
    }
    return 0;
}

求1加到100的和

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

1加到1/100的和

#include <stdio.h>
int main()
{
    double j = 0;
    int i = 1;
    while(i <= 100)
    {
        j += 1.0/i;//如果是int的话,1/2会变成0,所以要用double,利用隐式转换,用double的1.0把1/i变成double
        i++;
    }
    printf("%f\n",j);
    return 0;
}

求2+4+6+...+100的和

#include <stdio.h>
int main()
{
    int i = 0;
    int b = 0;
    while (i <= 100)
    {
        i++;
        if (i % 2 == 0)
        {
            
            b += i;
        }
    }
    printf("%d", b);
    return 0;
}

屏幕截图 2025-07-19 111751.png

do while与while的区别:do while第一次必须执行

###for循环

屏幕截图 2025-07-19 112352.png

//打印1~10
#include <stdio.h>
int main()
{
    for (int i = 1; i <= 10; i++)//此处的i的定义在for的里面 i只在for里面起作用 因此在for外定义一个i与for外面的i可同时存在
    {
    printf("i=%d\n", i);
    }
    return 0;
}

屏幕截图 2025-07-19 115616.png

#include <stdio.h>
int main()
{
    int a, b;
    int c = 0;
    printf("输入两个数字,小数在前,用空格隔开:\n");
    scanf("%d %d", &a, &b);
    for (int i = a; i <= b; i++)
    {
        if (i % 4 == 0 || i % 7 == 0)
        {
            printf("%d ", i);
            c++;
        }
    }
    printf("\n一共有%d个\n", c);
    return 0;
}

整数反转

#include <stdio.h>
int main()
{
    int n;
    printf("输入一个整数:");
    scanf("%d",&n);
    while(n){
        int a = n % 10;
        n = n / 10;
        printf("%d",a);
    }
    return 0;
}

另一写法

#include <stdio.h>
int main()
{
    int n;  
    printf("请输入一个整数:");
    scanf("%d",&n);
    int m = 0;
    while(n){
        int a = n % 10;
        n = n / 10;
        m = m * 10 + a;
    }
    printf("%d",m);
    return 0;
}

判断一个数是不是素数

#include <stdio.h>
int main()
{
    printf("输入一个整数:");
    int n;
    scanf("%d", &n);
    int i = 2;//从2开始判断,因为1不是素数
    for(1; i < n; i++)
    {
        if(n % i == 0){
            break;
        }
    }
    printf("%d %s 素数\n", n, i == n ? "是" : "不是");
    return 0;
}

判断一个整数是不是2的幂次方 疑问:(怎么好像是判断素数的方法)

屏幕截图 2025-07-20 113139.png 另一种代码

#include <stdio.h>
int main()
{
    int i;
    printf("请输入一个整数:");
    scanf("%d", &i);
    for (1; i > 0; i % 2)
    {
        if (i % 2 == 0 || i == 2)
        {
            printf("yes\n");
            break;
        }else if(i % 2 != 0)
        {
            printf("no\n");
            break;
        }
    }
    return 0;
}