C语言学习第三天

一、for循环语句
    循环:就是一种让一段代码反复执行的方式,从而达到想要的效果
    for循环一般会使用一个变量来引导循环的进行,这个变量叫做该循环的循环变量 i  index
    for循环的变化很灵活,但也很危险(相比于其他循环)
    for([1];[2];[3])
    {
        [4]
    }
    [1]、给循环变量赋初值  
        C99、C11标准才可以在此处定义变量(改~/.vimrc)
        在for循环内定义变量,只能在for内使用,出了for后无法使用
        for循环内定义的变量,会屏蔽循环外定义的同名变量
    [2]、判断循环变量是否到达结束边界值
        如果判断为假,那么结束循环,反之继续循环
    [4]、被反复执行的代码,称为循环体
    [3]、改变循环变量的值,防止出现死循环,一般对循环变量自加或自减
    1、2、4、3、2、4、3、2、4、3、2...

    for的多种写法:
    for(;;)
    {
        //  死循环
    }

    int i=0;
    for(; i<10; i++)
    {

    }

    for(int i=0; i<10;)
    {
        if(xxx)
        {
            i++;
        }
    }
    for循环的大括号问题:
        1、for循环内只有一行代码时,大括号可以省略
            但是这样不利于后期代码扩展,一般的商业代码要求大括号不能省略
        2、建议上下对齐,括号内该缩进的要缩进

二、while循环语句
    while(条件) //  当条件为真时执行循环体,为假时结束循环
    {
        //  循环体
    }
    for(;条件;)
    {

    }
    while循环相当于for循环其中一个精简版本
    for循环是负责解决明确知道循环次数的问题
    while循环是负责只知道循环结束条件而不确定循环次数的问题

三、do-while循环语句
    do{
        //循环体
    }while(条件);   //  分号不能少
    先执行循环体,再判断循环条件,至少会执行一次
    适合先干活、再判断的特殊情况,例如:输入密码

四、循环嵌套
    循环语句中有循环语句
    外层循环执行一次,内层循环执行n次
    for(int i=0; i<10; i++)
    {  
        printf("@");    
        for(int j=0; j<10; j++)
        {
            printf("$");    
            for(int k=0; k<5; k++)
            {
                printf("*");    
            }
        }
        printf("\n");
    }  

    练习1:计算出所有的水仙花数
    练习2:输入一个正整数,判断是否是素数
        只能被1和它本身整除  2 3 5
    练习3:输入一个正整数,判断是否是回文数
                   123321

    练习4:输入一个6位密码,输入正确时显示"密码正确"并结束,输入错误时提示还剩几次机会,并继续输入,最多错三次,否则出现"帐号已锁定",并结束
    提升题:输入一个整数,分解显示(不用数组)
        1233   1 2 3 3

五、跳转语句
    goto    可以在函数内任意跳转
    标签名:
        xxx;
        goto 标签名;

    注意:goto很容易破坏已经设计好的分支或者循环语句,因此绝大多数公司是禁止使用goto
        goto在驱动编程和硬件编程中非常时候处理异常
   
    练习5:不能使用循环语句计算N的阶乘
        5*4*3*2*1
   
    break
        1、在switch中关闭case开关
        2、跳出循环,但如果有循环嵌套时,只能跳出最近的一层循环
   
    continue
        结束本次循环,直接进入下一次循环
   
    return
        1、返回一个返回值给函数的调用者
        2、提前结束函数,程序回到调用位置继续执行
   
    练习6:不使用循环语句计算前N项的斐波那切数列
       1  0  | 1 1 2  3 5 8 13 21 ...
       n1 n2   n3
        N =6
        1 1 2 3 5 8
   
    作业1:打印99乘法表
    作业2:编程解决百钱百鸡问题,鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
        四种买法
    作业3:显示出100~1000内的所有素数
    作业4:输入一个日期(yyyy-mm-dd),计算该日期距离1年1月1日总共过了多少天
        #include <time.h>
        int sec = time(NULL);  
        得到自1970-1-1 0:0:0 到该函数调用时总共过的秒数
    作业5:  显示以下图形,要求每次printf只能输出一个字符
                     **********
                    **********
                   **********
                  **********
                 **********
                **********
               **********
              **********
             **********
            **********
 
   
       
posted @   mrlinan  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示