黑马程序员--ios基础--c语言--流程控制

一.流程控制
  • 顺序结构:默认的流程结构。按照书写顺序执行每一条语句。
  • 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
  • 循环结构:再给定条件成立的情况下,反复执行某一段代码
二.选择结构——if
  • 1.简单使用
  • if(表达式)语句1:
 int a = -10;
    
    if (a>1)
        printf("A\n");


  • if(表达式)语句1;else语句2;
// 人数
    int count = 40;
    
    if ( count >= 50 )
    {
        printf("开班!!!\n");
        printf("准备机器!!!\n");
    }
    else
    {
        printf("不开班!!!\n");
        printf("不准备机器!!!\n");
    }


  • if(表达式){}
   int count = 40;
    
    if ( count >= 50 )
    {
        printf("开班!!!\n");
        printf("准备机器!!!\n");
    }


  • if——else if——else
    int a = 6;
    
    if (a++ > 10) // a == 7
    {
        printf("A\n");
    }
    else if (a++ > 5) // a == 8
    {
        printf("B\n");
    }
    else if (a++ > 3) 
    {
        printf("C\n");
    }
    else
    {
        printf("D\n");
    }

练习
#include <stdio.h>

int main()
{
    // 1.提示输入
    printf("请输入分数值:\n");
    
    // 2.接收输入
    int score;
    scanf("%d", &score);
    
    // 3.判断等级 (性能最高)
    if (score>=90 && score<=100) { // [90, 100]
        printf("A\n");
    } else if (score>=80) { // [80, 89]
        printf("B\n");
    } else if (score>=70) { // [70, 79]
        printf("C\n");
    } else if (score>=60) { // [60, 69]
        printf("D\n");
    } else { // (-∞, 59]
        printf("E\n");
    }
    
    return 0;
}


三.选择结构-switch
1.简单使用
switch(表达式){case 数值1:break;...default:break;}
int a = 10;
    // break:退出整个switch语句
    // 如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止
    
    int b = 10;
    
    switch (a)
    {
        case 10:
            printf("A\n");
            b++;
        case 5:
            printf("B\n");
            b++;
        case 0:
            printf("C\n");
            b++;
            break;
        default:
            printf("D\n");
            break;
    }


2. if和switch的对比
很多情况可以互换
if用得比较多,比较灵活,switch只能某个单值
如果要在case后面定义新的变量,必须用大括号{}括住
    char c = '+';
    int a = 10;
    int b = 20;
    // 如果要在case后面定义新的变量,必须用大括号{}包住
    switch (c) {
        case '+':
        {
            int sum = a + b;
            printf("和是%d\n", sum);
            break;
        }
            
        case '-':
        {
            int minus = a - b;
            printf("差是%d\n", minus);
            break;
        }
    }


四.循环结构——while
1.简单使用
while(表达式){}
    // 1.先确定需要重复执行的操作
    
    // 2.再确定约束条件
    
    // 定义一个变量记录做的次数
    int count = 0;
    
    
    while (count<50)
    {
        ++count;
        
        if (count%10 != 0)
        {
            printf("做第%d次俯卧撑\n", count);
        }
    }


continue:
 while (count<50)
    {
        ++count;
        
        if (count%10 == 0)
        {
            // 直接结束这一次循环体,进入下一次循环
            continue;
        }
        
        printf("做第%d次俯卧撑\n", count);
    }

break的使用:某次的时候停止循环
  
    while (count < 50)
    {
        ++count;
        
        printf("做第%d次俯卧撑\n", count);
        
        if (count == 20)
        {
            break;
        }
    }


2.特点
只有条件成立彩绘执行循环体
五.循环结构-do while
特点:一定会执行一次循环体
while和do while循环对比
#include <stdio.h>

int main()
{
    int i = 0;
    
    /*
    while (i<0)
    {
        i++; // 5
    }*/
    
    do {
        i++; // 5
    } while (i<0);
    
    printf("i=%d\n", i);

    return 0;
}


六.循环结构-for
1.简单使用
运行过程
初始化语句等可以是多句(把printf放到for的括号中)
#include <stdio.h>
int main()
{
    /*
     "做俯卧撑"50次
     */
    /*
    int count = 0;
    
    for ( ; count < 50; )
    {
        printf("做俯卧撑\n");
        count++;
    }*/
    
    /*
    for (int count = 0; count < 50; )
    {
        printf("做俯卧撑\n");
        count++;
    }*/
    
    /*
    for (int count = 0; count < 50; count++)
    {
        printf("做俯卧撑\n");
    }*/
    
    /*
    for (int count = 0; count < 50; printf("做俯卧撑\n"),printf("哈哈哈\n"),count++)
    {
        
    }*/
    
    return 0;
}


2.for循环嵌套
#include <stdio.h>
int main()
{
    
    for (int i = 1; i<=4; i++)
    {
        //printf("好友列表%d\n", i + 1);
        printf("好友列表%d\n", i);
        
        /*
        printf("    好友1\n");
        printf("    好友2\n");
        printf("    好友3\n");
        printf("    好友4\n");
        printf("    好友5\n");*/
        
        for (int j = 1; j<=7; j++)
        {
            printf("    好友%d\n", j);
        }
    }
    
    return 0;
}


3.陷阱
  • 死循环
for(;;);


  • for循环体内部变量的作用域
  • 作用域混淆
  • while循环和for循环的比较
可以互换
for循环的变量可以及时回收
七.break和continue
1.break
使用场合:switch、循环结构
循环嵌套线的break
2.continue
使用场合:循环结构
循环嵌套下的continue
int main()
{
    /*
    for (int i = 0; i<5; i++)
    {
        printf("%d\n", i);
        
        if (i%2)
        { // i为奇数:1、3
            continue;
        }
    }*/
    /*
    for (int i = 0; i<5; i++)
    {
        
        printf("哈哈哈\n");
        
        continue;
        
        printf("哈哈哈23\n");
    }*/
    
    for (int i = 0; i<3; i++)
    {
        for (int j = 0; j<2; j++)
        {
            if (j==1)
            {
                break;
            }
            
            printf("A\n");
        }
        
        break;
        
        printf("B\n");
    }
    
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值