四、程序流程结构:if else语句;三目运算符;switch语句;for循环;while循环;do while循环;break、continue、goto

for while if 后面的执行语句只有一条,那么{}可以不用写

 

复制代码
//if else示例:
int main(void)
{
    const int num = rand()%100;
    printf("猜数字游戏,数字范围0-100\n");
    for (;;) {
        printf("请输入一个数字:");
        int a;
        scanf("%d",&a);
        
        if (a == num) {
            printf("恭喜你答对了!!!\n");
            break;
        }
        else if (a < 0 || a > 100) {
            printf("数字超范围了,请重新输入一个数字\n");
        }
        else if (a < num) {
            printf("猜的数字小了\n");
        }
        else {
            printf("猜的数字大了\n");
        }
    }
}
======================================================================
ifelse if…else语句

int main()
{
    unsigned int a;
    scanf("%u", &a);

    if (a < 10)
    {
        printf("个位\n");
    }
    else if (a < 100)
    {
        printf("十位\n");
    }
    else if (a < 1000)
    {
        printf("百位\n");
    }
    else
    {
        printf("很大\n");
    }

    return 0;
}
if else示例
复制代码

 

复制代码
三目运算符
#include <stdio.h>

int main()
{
    int a = 10;
    int b = 20;
    int c;

    if (a > b)
    {
        c = a;
    }
    else
    {
        c = b;
    }
    printf("c1 = %d\n", c);

    a = 1;
    b = 2;
    c = ( a > b ? a : b );
    printf("c2 = %d\n", c);

    return 0;
}
三目运算符
复制代码

 

复制代码
switch示例
#include <stdio.h>

int main()
{
    char c;
    c = getchar();

    switch (c) //参数只能是整型变量
    {
    case '1':
        printf("OK\n");
        break;//switch遇到break就中断了
    case '2':
        printf("not OK\n");
        break;
    default://如果上面的条件都不满足,那么执行default
        printf("are u ok?\n");
    }
    return 0;
}
switch示例
复制代码

 

复制代码
for循环示例;for循环表达式的省略
=================================================================
for (; i <= 100; i++)   //省略表达式1
for (; i <= 100; )      //省略表达式1、3
for (;;)                //省略表达式1、2、3,相当于死循环
for (i = 1, a = 3;a < 20; i++)  //多个表达式

省略的表达式相当于判定为真
----------------------------------------------------------------
//for循环示例
int main(void)
{
    int sum = 0;
    int i;
    for (i = 1; i <= 100; i++) {
        sum += i;
    }
    printf("sum is %d",sum);
    system("pause");
    return EXIT_SUCCESS;
}
#include <stdio.h>
----------------------------------------------------------------
int main()
{
    int i;
    int sum = 0;
    for (i = 0; i <= 100; i++)
    {
        sum += i;

    }

    printf("sum = %d\n", sum);

    return 0;
}
for循环示例;for循环表达式的省略
复制代码

 

复制代码
while循环;do…while循环
========================================
while循环
#include <stdio.h>

int main()
{
    int a = 20;
    while (a > 10)
    {
        scanf("%d", &a);
        printf("a = %d\n", a);
    }

    return 0;
}
-------------------------------------------
do…while语句
#include <stdio.h>

int main()
{
    int a = 1;
    do
    {
        a++;
        printf("a = %d\n", a);
    } while (a < 10);

    return 0;
}
while循环;do…while循环
复制代码

 

复制代码
跳转语句break、continuegoto
======================================================
break:跳出当前内循环语句,执行后面的代码。
continue:立即终止本次循环,并执行下一次循环
goto语句(无条件跳转,尽量少用)
------------------------------------------------------
#include <stdio.h>

int main()
{
    goto End; //无条件跳转到End的标识
    printf("aaaaaaaaa\n");

End:
    printf("bbbbbbbb\n");

    return 0;
}

------------------------------------------------------
goto语句:需要定义一个标签(任意名称),然后 goto 标签即可;可以实现循环效果,也可以实现跳过效果

循环效果
    LABLE:
    ......
    goto LABLE;

跳过效果:
    goto LABLE;
    ......
    LABLE:
跳转语句break、continue、goto
复制代码

 

复制代码
其他示例
===================================================================
int main(void)
{
    srand(time(NULL));    //没有这个随机数种子的话,那么生成的随机数其实不会变化,为什么???
    const int num = rand()%100; //所以rand()根本就不是生成随机数咯。。。。
    printf("猜数字游戏,数字范围0-100\n");
    for (;;) {
        printf("请输入一个数字:");
        int a;
        scanf("%d",&a);
        
        if (a == num) {
            printf("恭喜你答对了!!!\n");
            break;
        }
        else if (a < 0 || a > 100) {
            printf("数字超范围了,请重新输入一个数字\n");
        }
        else if (a < num) {
            printf("猜的数字小了\n");
        }
        else {
            printf("猜的数字大了\n");
        }
    }
}
-------------------------------------------------------------------
int main(void)
{
    srand(time(NULL));    //没有这个随机数种子的话,那么生成的随机数其实不会变化,为什么???
    const int num = rand()%100;    
    int a, b, c, e, f, g;
    printf("请输入3个数:\n");
    scanf("%d %d %d", &a, &b, &c);                //输入格式:1 2 3 
    printf("输入的三个数是:%d、%d、%d",a,b,c);
    printf("请输入3个数:\n");
    scanf("%d,%d,%d", &e, &f, &g);                //输入格式:1,2,3 
    printf("输入的三个数是:%d、%d、%d", e, f, g);
    
}
-----------------------------------------------------------------
int main(void)
{
    int a, b;
    a = 1;
    b = 1;
    for (a = 1; a <= 9; a++) {
        for (b = 1; b <= a; b++) {
            printf("%2d x%2d = %2d  ",b,a,a*b);
        }
        printf("\n");
    }
    
}
其他示例
复制代码

 

posted @   雲淡風輕333  阅读(81)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示