IOS开发之C基础-分支及结构

C语言流程结构:顺序结构,分支结构,循环结构

1.顺序结构:程序从上往下依次执行就叫顺序结构

2.分支结构:程序有选择的执行某段代码或者不执行某段代码

3.循环结构:程序重复的执行某段代码

分支结构之if分支

if语句

if单分支:

 语法:if(表达式){

            语句块;

         }

 语义:如果表达式的结果为真,则执行语句块,否则不执行语句块


用户输入一个数,判断是否是偶数

int main(int argc, const char * argv[]) {

    int number;

    printf("请输入一个自然数");

    scanf("%d",&number);

    

    if (!(number%2)){

        printf("number %d 是偶数\n",number);

        printf("真的是偶数\n");

    }

    

    if (number%2){

        printf("number %d 是奇数\n",number);

    }

    return 0;

}



 if双分支:

    语法:

        if(表达式){

            

            语句块1;

        }else{

            

            语句块2;

        }

    语义:如果表达式的结果为真,则执行语句块1,否则执行语句块2

         语句块1或者语句块2,至少会有一个被执行

int main(){

    int number;

    printf("请输入一个自然数");

    scanf("%d",&number);


    if ((number%2)==0){

        printf("number %d 是偶数\n",number);

        printf("真的是偶数\n");

    }

    else {

        printf("number %d 是奇数\n",number);

    }

    return 0;

}


if语句的嵌套

        简单来说:就是if语句里面还可以有任意的if语句


性格测试  male,female->sex

男生女生对不同口味的巧克力(chocolate)选择(choice), 判断其恋爱性格(personality)

(1)酒心巧克力(alcohol)   (2)扇贝巧克力(shell (3)果仁巧克力(nut


男生1您是一个恋爱高手很会讨女孩子喜欢

2)您是一个胆小的人总是担心自己不够好

3)您对女孩子一心一意但是她总是感觉不到

4)您输入了一个错误选项


女生:  1)在恋爱中您往往处于劣势

2)您是一个浪漫的人恋爱中能够很好的调节气氛

3)您是一个女强人恋爱中总是忽略对方的感受

4)您输入了一个错误选项

int main(){

    int sex;

    int choice;

    printf("请输入您的性别 1:女性,2:男性\n");//5

    scanf("%d",&sex);

    printf("请输入您喜欢的巧克力口味 1:酒心巧克力 2:扇贝巧克力 3:果仁巧克力\n");

    scanf("%d",&choice);

    //排错

    if(sex<0||sex>2||choice<0||choice>3){

        printf("输入有误");

        return 0;

    }

    //判断系统

    //男士

    if(sex == 2){

        if(choice == 1){

            printf("您是一个恋爱高手很会讨女孩子喜欢");

        }else if(choice == 2){

            printf("您是一个胆小的人总是担心自己不够好");

        }

        else{

            printf("您对女孩子一心一意但是她总是感觉不到");

        }

    }

    else{

        if(choice == 1){

            printf("在恋爱中您往往处于劣势");

        }else if(choice == 2){

            printf("您是一个浪漫的人恋爱中能够很好的调节气氛");

        }

        else{

            printf("您是一个女强人恋爱中总是忽略对方的感受");

        }

    }

    

    return 0;

}



 

 if多分支:

           语法:

            if(表达式1){

                

                语句块1

 

            }else if(表达式2){

                

                语句块2

 

            }else if(表达式3){

 

                语句块3

            }

            ……………………

            else if(表达式n){

                语句块n

 

            }else{

                

                语句块n+1;

            }

        语义:先判断表达式1,如果成立则执行语句块1,后面的都不执行了,否则继续判断表达式2,如果成立,则执行语句块2,后面的都不执行了,如果不成立则判断语句块3,如果成立则执行语句块3,否则继续往下判断,直到else上面的条件都不满足,就执行语句块n+1;

int main(){

    int score;

    printf("请输入您的成绩");

    scanf("%d",&score);

    

    //错误输入提前退出

    if(score<0 || score>100)

    {

        printf("输入有误");

        return 0;//退出

    }

    

    if (score<60) {

        printf("不及格");

    } else if (score<80){

        printf("及格");

    }else {

        printf("优秀");

    }

    return 0;

}


       注意:在if多分支中我们的这种语法格式是一个整体,上面判断过的内容如果不成立,那么下面判断时已经做了过滤!!!在编程过程中可避免重复


if语句需要注意的地方:

    1.if语句后面千万不要加分号,如果你非要手贱加一个分号,那么就加在大括号后面

    2.if语句的大括号,其实是可以省略的!

            当你省略大括号的时候,那么if语句只能管到离它最近的一句语句,但是这句语句不能是声明变量的语句

    3.if语句里面可以写任意条语句(必须要有大括号)

    4.非0的数就是真,0就是假,避免让你的表达式是永真或永假

    5.if语句里面定义的变量只能在它语句块里面访问

    6.if语句小括号里面的表达式可以写任意表达式

分支结构之switch分支

switch语句

    switch语法:

            switch(表达式){

                case 常量表达式1:

                    语句块1

                    break;


                 case 常量表达式2:

                     语句块2

                     break;

 

                 case 常量表达式3:

                     语句块3

                     break;

                      ……

                

                 default:

                     语句块n

                     break;

            }

 

     语义:  先得出表达式的结果,根据结果跳转到相应的case语句块里面去执行

            表达式结果  == 常量表达式  就叫相应的case语句块

            如果case 后面的常量表达式没有一个跟表达式结果对应的

            那么就跳转到 default里面执行语句块n

输入一个月份(month),判断是什么季节(season

2,3,4 春季,5,6,7夏季,8,9,10秋季,11,12,1 冬季

int main(){

    int month;

    printf("请输入月份\n");

    scanf("%d",&month);

    switch (month) {

        case 2:

        case 3:

        case 4:

            printf("spring");

            break;

        case 5:

        case 6:

        case 7:

            printf("summer");

            break;

        case 8:

        case 9:

        case 10:

            printf("autumn");

            break;

        case 11:

        case 12:

        case 1:

            printf("winter");

            break;

        default:

            printf("输入有误");

            break;

    }

    return 0;

}



 

 switch语句的穿透问题:

 当case块里面不加break的时候,会发生穿透

 穿透意思:就是从这个case块里面执行完语句后,会继续跳到下一个case块里面继续执行

 所以,我们必须加break,防止穿透

 break可以跳出当前的switch语句

default可写可不写,写的话无论写在哪个位置,效果都是一样的,但是如果写在上面时,要防止发生穿透问题,若放在最下面,break可以不写,但建议写上,养成良好的编程习惯

switch语句需要注意的地方:

1.switch语句后面的小括号只能写整数类型的表达式,否则会报

2.case后面只能接常量表达式

3.case后面的常量表达式不能有重复的值 

4.switch小括号后面不要加分号,手贱要加分号加在大括号后面

5.case后面不能立即声明变量,除非在声明前面加一条或者N条语句

6.非要在 case后面立即声明变量时那么就在case块里面加一个大括号

7.如果不加大括号声明的变量,其他case块也可以访问

8.default可以写在任意位置,不影响结果

if和switch的比较

有时间两者可以互换,if更为灵活,而switch只能是单值,散点

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值