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

来源:互联网 发布:sql主键怎么设置 编辑:程序博客网 时间:2024/04/28 01:14
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 
一.流程控制
  • 顺序结构:默认的流程结构。按照书写顺序执行每一条语句。
  • 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
  • 循环结构:再给定条件成立的情况下,反复执行某一段代码
二.选择结构——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