day5-控制语句

day05 控制语句
顺序结构
选择结构
循环结构
跳转结构

-----------------------------------------
1、顺序结构
    没有语句
    main函数的第一句开始,最后一句结束
    上一句执行完之后,下一句才能执行。
    
    #include<stdio.h>

    int main()
    {
        printf("1111111111\n");
        while(1);
        printf("2222222222\n");
        return 0;
    }
------------------------------------------
2、选择结构
    if-else   switch-case
    
    学控制语句的格式     应用
    
    2.1、if-else 组合
    ①、单个if
    格式:
        if(条件表达式)
        {
            // 语句块;
        }
        
    执行流程:
        如果 条件表达式 为真
            执行{} 语句块
            
    练习:        
        // 输入一个数据,如果这个数据是100,则输出 合格,其他的话什么都不做 
    
    ②、if-else
        二选一
    格式:    
        if(条件表达式)
        {
             // 语句块1
        }
        else
        {
            // 语句块2
        }
    
    执行流程:
        如果 条件表达式 为真
            执行语句块1
        否则
            执行语句块2
        
    练习:
        付款  
        偶数和奇数
        
        需求:输入一个数据,如果这个数据是三位数,输出 YES,否则输出 NO.
        思路:
            定义一个变量
            输入数据
            
            如果  变量 是三位数
                输出 yes
            否则
                输出 NO
    ③、if-else if - else组合
        多选一
        
    格式:
        if(条件表达式1)
        {
            // 语句块1
        }
        else if(条件表达式2)
        {
            // 语句块2
        }
        else if(条件表达式3)
        {
            // 语句块3
        }
        .....
        else if(条件表达式n)
        {
            // 语句块n
        }
        else
        {
            // 语句块m;
        }
        
    执行流程:
        如果 表达式1 成立 执行 语句块1 
            表达式1 不成立 ,表达式2成立   执行语句块2
            表达式1 不成立 ,表达式2不成立  表达式3成立  执行语句块3
            表达式1 不成立 ,表达式2不成立  表达式3不成立 。。。。。。。。
        
        所有条件表达式都不成立  执行else里面的语句。
        
    练习:
        int x = 5;
        int y;
        
        //输入y的值,如果y>0 , x = x + 5;,
        //           如果y==0, x = x + 1;
        //           如果y<0,x = x - 5;
        
        int x = 5;
        int y;
        printf("请输入一个数值:");
        scanf("%d",&y);
        
        if(y > 0)
        {
            x = x + 5;
        }
        else if(y == 0)
        {
            x = x + 1;
        }
        else if(y < 0)
        {
            x = x - 5;
        }
        
        printf("%d",x);
        
        ------------------------------------------------------------------
        int x = 5;
        int y;
        printf("请输入一个数值:");
        scanf("%d",&y);
        
        if(y > 0)
        {
            x = x + 5;
        }
        else if(y == 0)
        {
            x = x + 1;
        }
        else
        {
            x = x - 5;
        }
        
        printf("%d",x);
    
    练习题:
        蛇头初始位置是 x=10,y=5,贪吃蛇蛇头控制,'a' 'w' 's' 'd'控制左 上 下 右,
        按照用户输入的方向按键,输出蛇头下一个位置坐标。
        
    
    2.2、switch-case
    格式:
        switch(表达式)
        {
            case 常量1:语句块1;break;
            case 常量2:语句块2;break;
            case 常量3:语句块3;break;
            case 常量4:语句块4;break;
            // .....
            default:语句块n;break;
        }
        
    执行流程:
        计算表达式的结果,如果结果 == 常量1 , 执行语句块1,break结束匹配
                        如果结果 != 常量1    如果结果 == 常量2 , 执行语句块2,break结束匹配
                        如果结果 != 常量1    如果结果 != 常量2  如果 结果 == 常量3 ,执行语句块3,break结束匹配
                        如果结果 != 常量1    如果结果 != 常量2  如果 结果 != 常量3 ,如果结果 == 常量4 ,执行语句块4 ,break结束匹配
                    
                    对比所有常量都不匹配,执行default后面的语句。
                    
        
    需求:
        蛇头初始位置是 x=10,y=5,贪吃蛇蛇头控制,'a' 'w' 's' 'd'控制左 上 下 右,
        按照用户输入的方向按键,输出蛇头下一个位置坐标。
        
        int x = 10,y = 5;
                
        char key;
        
        scanf("%c",&key);
        
        switch(key)
        {
            case 'a':x = x - 1;break;
            case 'w':y = y - 1;break;
            case 's':y = y + 1;break;
            case 'd':x = x + 1;break;
            default:printf("\a");break;
        }
        
        
        printf("x:%d,y:%d\n",x,y);
        
    *****注意:case后面是常量,不能放变量也不能放操作数和运算符的组合。*****
    
------------------------------------------
3、循环结构
    重复执行一段代码
    
    for循环   while循环    do-while循环
    
    3.1、for循环
        有限循环   循环次数有限 
        
        int i;
        
        i = 1;      printf("hello world\n");   
        i = i + 1;  printf("hello world\n");
        i = i + 1;  printf("hello world\n");
        i = i + 1;  printf("hello world\n");
        i = i + 1;  printf("hello world\n");
        i = i + 1;  printf("hello world\n");
        i = i + 1;  printf("hello world\n");
        i = i + 1;  printf("hello world\n");
        i = i + 1;  printf("hello world\n");
        i = i + 1;  printf("hello world\n");
        
        i初始值是1, i <= 10 执行 printf("hello world\n");  执行完 i = i + 1;
        
    for格式:
        for(循环变量赋初值;循环条件;循环变量改变)
        {
            // 循环体
        }
    执行流程:
        循环变量赋初值  循环条件成立   执行循环体   循环变量改变
                        循环条件成立   执行循环体   循环变量改变
                        ......
                        循环条件不成立,结束循环
        
    代码:
        int i;
        for(i=1;i<=10;i=i+1)
        {
            printf("hello world\n");
        }
        
        // 需求:100 ~ 999    内所有的水仙花数
        int k;
        int ge,shi,bai;
        for(k=100;k<=999;k=k+1)
        {
            //k是水仙花数的判断思路如下:
            // 1、分离k   个位 十位 百位
            
            // 2、如果 k 是水仙花数
            //      输出 k
        }
        
        // 一般让你在某一个范围内查找某一些特殊数据的时候, --- 分解思想
        // 1、先确保拿到这个范围内的每一个数
        // 2、使用条件结构筛选符合条件的数据。
        
    
    ------------------------------------------------------------------------------------
    3.2 while循环
    格式:
        while(循环条件)
        {
            // 循环体
        }
        
    执行流程:
        循环条件成立  执行循环体
        循环条件成立  执行循环体
        
        循环条件不成立  结束循环
        
    需求:
        输出10次 hello world\n
        
        初始次数是1   次数 <=10  输出 hello world\n    次数 = 次数 + 1;
        
        int i;
        i = 1;
        
        while(i <= 10)
        {
            printf("hello world\n");
            i = i + 1;
        }
        
    需求:1+ 2+ 3+ 4 +5 +....+ 100的和
        // 获取1~100每一个数
        // 遇到一个数和和数据进行相加,
        // 加完所有的数据之后就可以输出 这个和。
        
        int i = 1;
        int sum = 0;
        
        while(i<=100)
        {
            sum = sum + i;
            i = i + 1;
        }
        
        printf("%d",sum);
    
    ------------------------------------------------------------------------------------
    3.3 do-while循环 --- ?????
    
---------------------------------------------------------------------
4、跳转语句
    break 
    continue 
    goto
    return 
    
    4.1 break
        结束离它最近的那一层循环
        
        int i;
        for(i=0;i<10;i++)
        {
            // 如果 i == 2
            //      结束循环
            
            if(i == 2)
            {
                break;
            }
            printf("%d ",i);
        }
    
    4.2 continue
        结束本次循环,循环还在继续
        int i;
        for(i=0;i<10;i++)
        {
            // 如果 i == 2
            //      结束本次循环        
            if(i == 2)
            {
                continue;
            }
            printf("%d ",i);
        }
        
    练习:
        猜数字
        
        预设一个数据 int n = 56;
        
        让用户猜测数据是多少,如果比n大,输出大了,如果比n小输出小了,如果相等 ,结束猜数,输出"猜对了"
        允许用户才多次。
        
        int n = 56;
        int m;
        
        
        while(1)
        {
            // 输入数据
            
            // 如果 数据 > n
            //    输出 大了
            // 如果 数据 < n
            //    输出  小了
            // 如果 数据 == n
            //    输出 猜对了
            //    break;
        }
        
    
    
        
        

        
        
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值