美文网首页与时俱进的IT
C语言(二)分支结构

C语言(二)分支结构

作者: 社会主义顶梁鹿 | 来源:发表于2018-07-29 16:21 被阅读0次

    一、程序的执行顺序

     1、程序是顺序执行 一行行代码逐条语句执行

     *行数呈深蓝色 //断点:调试的时候使用 程序执行到这个位置就会暂停

     2、分支结构  在顺序执行的时候,遇到分支结构(if、switch)  会选择正确的分支继续顺序执行

     3、循环结构  在顺序执行的时候  遇到循环结构  会在符合循环的环境下 一直循环执行  直到不再符合条件  继续顺序执行

     二、关系运算符

     关系运算符:是比较两个元素的关系的对比符号

     <(小于)、>(大于)、==(相同)、<=(小等于)、>=(大等于)、!=(不相同)

     三、逻辑运算符

     &&(并且)、||(或者)、!(取反)(int a=5; !a;)

     关系运算符和逻辑运算符只有两种情况(是(真)、否(假))

     四、分支结构之一  if语句

     if就是 如果 假设 ,if语句 是假设 这个表达式是否成立

     如果表达式可以成立(是正确的),就执行功能代码。

     如果表达式没有成立,就不搭理他。

     程序是顺序执行的当执行到if语句那发现有个分支结构判断 

     是否满足条件 如果满足 就进入分支 如果不满足 就跳过

     if (表达式){

     功能代码

     }

      eg:输入你父亲的年龄,如果大于40就是个好父亲。

     第一种方式:

    int fatherAge = 0;

        printf("请输入您父亲的年龄:");

        scanf("%d",&fatherAge);

        int result = fatherAge >=40;

        printf("是不是大于等于40岁?%d\n",result);

        if (result == 1) {

            printf("您父亲倍儿棒!\n");

            }

        else {

            printf("您父亲倍儿倍儿棒!\n");

            }

     1.条件判断:<、>、<=、>=、==、!= 关系运算符计算结果都只是 真(1)或者假(0)两种结果

     2.***当只有两个条件可以选择的时候,优先使用if语句

     3.判断结果是不是1(是不是真的),如果是真的就进入花括号内执行里面的代码;如果不是真的,就跳过;

     4.result可以换成fatherAge>=40

     5.当不满足if语句里面的条件的时候,让他执行另外一个分支。可以使用else(否则)

     第二种方式:

     int fatherAge = 0;

     printf("请输入您父亲的年龄:");

     char *mesaage;      //char * 字符串(一段文字)

     if (fatherAge>=40) {

     mesaage = "您父亲倍儿棒!";

     }

    else{

     mesaage = "您父亲倍儿倍儿棒!";

     }

     printf("%s\n",mesaage);

     eg:如果上课人数大于60,学习氛围倍儿好!否则,没来的去当葫芦娃了!

     int num;

     printf("请输入上课人数:");

     scanf("%d",&num);   //跟上一个scanf隔开,格式化字符串前面加个空格

     if (num>60) {

     printf("你们的学习氛围倍儿好!");

     }

     else{

     printf("没来的去当葫芦娃了!");

     }

     如果1.只有两个条件可以选择,2.并且有两个可能发生的结果;3.再并且分支结构里面没有嵌套使用其他内容;4.可以使用三目运算。⬇️

     五、三目运算

     三目运算不要多个嵌套使用

     可以理解为 一重if判断的简写

     三目运算的公式:表达式?(问电脑表达式是不是真的)

     第一个结果(真的):

     第二个结果(假的);

     //第一种方式

     int a=33;

     char *sss;//char * 字符串(一段文字)

     scanf("%d",&a);

     if (a<33) {

     sss="是滴";

     }

     else{

     sss="FP";

     }

     printf("%s\n",sss);

     //三目运算

     int a;

     char *r=a<33?"是滴":"FP";

     scanf("%d",&a);

     printf("%s\n",r);

     六、枚举

     枚举:逐个的列举  他本身是有顺序的 当打破默认的顺序  会按照打破顺序的地方继续按顺序排列

     枚举:列举 一个一个按顺序罗列出来

     enum  默认从0开始按顺序罗列出来

     当有一个元素值发生改变,如(0、1、(2)、3)突然2改变成3,则接着按顺序罗列(0、1、3、4)

     枚举用字符串来表示这些数字,这样的好处:1.很直观的了解这个数字的含义;2. 当改变字符串对应的数字的时候,不会影响到程序里面的代码;⬆️

     枚举的公式之一:⬇️

     enum 枚举的名字{

     枚举的例子,(使用逗号隔开,默认从0开始)

     枚举的例子,(当这个元素的值改变成5,下个元素默认是6)

     枚举的例子(最后一个元素没有逗号)

     };

     eg:

     enum Type{

     Red,

     Orange=5,

     Yellow,

     Green

     };

     enum 枚举名 变量名 = 枚举值;

     enum Type type = Yellow;

     printf("%d\n",type);

     (输出为6)

     枚举的公式之二:

     typedef 用来替代(enum枚举的名字)

     typedef enum 枚举的名字

     {

     枚举的例子,(使用逗号隔开,默认从0开始)

     枚举的例子,(当这个元素的值改变成5,下个元素默认是6)

     枚举的例子(最后一个元素没有逗号)

     }要替代的名字;

     eg:

     typedef enum Type{

     Red,

     Orange=5,

     Yellow,

     Green

     }Color;

     Color color = Green;

     printf("%d\n",color);

     什么情况下使用枚举:

     1.当某些数字具有一定意义的时候,可以使用枚举,直观的体现这些数字的意义;2.在编程过程中有可能修改需求,把具有特定意义的数字修改成别的数字,防止修改大量代码,节省工作量。

      七、分支结构之二 switch

     当有多个条件可以提供选择的时候,可以使用switch,来替代if;

     当条件变量满足第某个条件的时候,会跳到对应的条件里面去执行代码➡️遇到(break)会跳出switch继续执行

    switch的判断条件只能是short char int long 类型;

     switch常与枚举配合使用;

     switch (条件变量) {

     case 条件1:

     具体代码

     break;

     case 条件2:

     具体代码

     break;

     case 条件3:

     具体代码

     break;

     default:

     break;

     }

     注意:每一个分支条件后面必须跟一个break来跳出花括号,如果没有跳出,会继续往下执行。

    default:默认 任何条件 都不满足的时候  进入default

    eg:

    typedef enum LoginType{

            Acc = 10,

            QQ,

            Sina,

            WeiXin

        }LoginType;

        //定义LoginType这个枚举的变量

        LoginType type;

        //    输入一个数字来判断用户使用哪种方式登陆

        scanf("%d",&type);

        switch (type) {//表示type到底是多少

            case Acc:

                printf("账号登陆");

                break;

            case QQ:

                printf("QQ登陆");

                       break;

            case Sina:

                printf("Sina登陆");

                break;

            case WeiXin:

                printf("WeiXin登陆");

                break;

    default:

    printf("没有这种登陆方式");

    break;

    }

     while 循环:

     先判断再执行

     格式:while(表达式){

              循环体

     }

     作用:循环执行某段代码

     int a = 10;

     while (a < 15) {

     a++;

    }

     //如果条件正确才会执行这里,并且一直循环执行,知道不再满足这个条件为止

     eg:1-100中7的倍数

    int a = 0;

        while (a<100) {

            a++;

            if (a % 7==0) {

                printf("0-100中7的倍数: %d\n",a);

            }

        }

    eg: int num = 0;

        while (num<100) {

            num++;

            if (num % 10==7) {

                printf("个位为7的数:%d\n",num);

            }

        }

     do - while :先执行后判断

     格式:do{

        循环体

     }while(表达式);

     用法:不管条件如何,先执行一遍,接着判断表达式,如果条件成立,继续执行。

     eg:输出5次“I am handsome”

     int a=0;

     do {

     a++;

     printf("I am handsome %d\n",a);

     } while (a<5);

     eg:1-100中7的倍数

     int a=0;

     do {

     a++;

     if (a%7==0) {

     printf("7的倍数:%d\n",a);

     }

     } while (a<100);

    **代码是按照顺序执行的

    eg:1-100中7的倍数

    int a=1;

        do {

            if (a%10==7) {

                printf("个位为7: %d\n",a);

            }

            a++;

        } while (a<=100);

    **使用随机数需要导入#include

    **随机数函数:arc4random()

         a-b的范围              arc4random()%(b-a+1)+a

    **取1-5的随机数:arc4random()%5+1

    **取100-500的随机数:arc4random()%401+100

       1、要想取一个随机数 (确定 取随机数的范围)

    10 - 15 (确定随机数的范围 包含10 和15 以及他们之间的范围)

    // 了解随机数 :随机数的值 是从0开始 取随机数的范围是多少(10 - 15 的范围是6)随机数 取余的数 就是6

    // 使用随机函数:arc4random()%6(取出来的值 是0 1 2 3 4 5)(随机数 取值 是从0开始 一直到 范围(6)结束(不包括范围(6)))

    // 如果想取10 - 15 的随机数 在取出来的随机数 后面加最小的那个数字(10)即可

    continue 语句:用在循环语句中

     当符合某个条件的时候,跳过这个条件***继续执行***

     break 语句:当符合某个条件的时候,直接跳出循环。

     eg: int a=0;

     while (a<5) {

     a++;

     //当a的值为4的时候

     if (a==4) {

     //跳过并继续执行

     continue;

     }

     printf("%d\n",a);

     }

     ****在不知道循环多少次的时候用while或者do - while

     如果知道循环次数,可以选择使用for循环*****

    for循环语句:

     for (初始值变量;循环的条件;改变变量){

           循环语句

     }

    eg:

     //打印十年经历的春夏秋冬,并标记是第几年的

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

            printf("这是第%d年的\n",i);

        }

    for 步骤

    1、初始化变量并赋值

    2、判断变量是否满足循环条件

    3、*如果满足循环条件,进入循环,执行循环语句

    4、执行完循环语句里面的代码,让变量改变

       第一次循环执行完毕

    5、第二次循环,再次判断变量是否满足循环条件

    6、如果满足,进入第三次,不满足跳出循环

    相关文章

      网友评论

        本文标题:C语言(二)分支结构

        本文链接:https://www.haomeiwen.com/subject/tcttvftx.html