黑马程序员——分支语句if及switch的用法和注意事项

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------


第一讲         分支语句if的使用

    一般形式:如果表达式为真执行语句块1,否则不执行。

       if(表达式){


          语句块1                                  //原理:

     }                                                             先计算小括号中的表达式值

          后续语句;                                              真(1)      会执行大括号内语句

                                                                            假(0)     不执行大括号内语句

例如:

int num =0;
printf("请输入一个数字:\n");      
scanf("%d",&num);             //接受数字
if(num==5){ 

         printf("恭喜你\n");
}
if(num!=5){
  
          printf("很可惜\n");
}

    除了基本用法,if还有其他用法

如if....else语句                  


      格式如下:


          if(表达式){


              语句块1;          //如果表达式为真,则执行语句块1


 }else{                                          //注意:不管表达式为真为假,都会执行一个分支


             语句块2;         //如果表达式为假,则执行语句块2


 }

例:

int num =0;
printf("请输入一个数字:\n");      
scanf("%d",&num);
if(num==5){

         printf("恭喜你\n");
}else{

         printf("很可惜\n";

}



if语句的嵌套

例:

int num =0;
printf("请输入一个数字:\n");      
scanf("%d",&num);
if(num==5){

         printf("恭喜你\n");
}else{

     if(num>5){

             printf("大于5了\n");      //if语句的嵌套
       }else{

             printf("小于5了\n");

     }

}


if语句的高级用法

基本格式:

             if(表达式1){

                 语句块1;

}else if(表达式2){                                               // 如果表达式1为真,则执行语句块1,

                                                                                    否则判断表达式2,如果为真,执行语句块2,

                   语句块2                                                    否则再判断表达式3,为真执行语句块3,

                                                                                     当表达式1,2,3都不满足时,执行最后一个语句         

}else if(表达式3) {

                语句块3;

}else{

                语句块4;

}

例:

int main()
{
    int n;                 //定义一个变量作为分数
 
    scanf("%d",&n);        //接受分数   
 
    if(n>90)
    {
        printf("A");
    }
    else if(n>=80 && n<=90)       //分数在哪个区间对应哪个等级
    {
        printf("B");
    }
    else if(n>=70 && n<=79)
    {
        printf("C");
    }
    else if(n>=60 && n<=69)
    {
        printf("D");
    }
    else
    {
        printf("E");
    }
 
    return;
}
第二讲    switch语句的使用


switch语句基本格式:


switch(表达式){

                 case   常量表达式1:  语句1;

                 case   常量表达式2:  语句2;

                   ......       ...........

                 case   常量表达式n:  语句n;

                 default:   语句n+1;

}


其语义是:计算表达式的值,并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,就执行这个常量表达式的语句,然后不再进行判断,继续执行之后所有的语句,如表达式的值与所有常量表达式都不想等,则执行default后的语句

注意:

           switch有个case语句穿透问题,某个case语句执行完之后,并没有结束,而直接向下执行其他的case语句,这种现象称之为case语句的穿透。

如何防止:

            我们需要在每一个case语句结束之后,加上一句break;break的作用是结束switch语句。


例:

int main()
{
   int num;
   scanf("%d",&num);
   switch(num)
   {
       case 1: printf("A");
    break;
       case 2:printf("B")              //加break防止穿透
    break;
       case 3: printf("C")
    break;
       case 4: printf("D");
    break;
    default:
       printf('?');
   }
   printf("\n");
}

if和switch的联系:

                   分支比较多且无法穷尽或进行大量列举时最好用if,分支比较少,但使用if代码量比较多的时候,可以用switch。


switch语句表达式类型:

1)可以放一个整形变量,如int sum=10;switch(num)

2)可以放一个整形常量,如switch(10)

3)可以放一个返回值是整形的表达式,如switch(5+5)

4)可以放可以转换为int类型的表达式,如(‘a’+‘a’)(‘a’)


case语句注意事项:

1)case语句格式  case 后面加个空格不能省 常量表达式:   (空格和冒号不能省)

2)可以是常量,如case 10

3)可以是常量表达式5+5

4)default语句的位置可以任意放

5)case语句穿透同样使用default

6)如果default语句放到switch语句最后,可以不加break,如果不放最后必须加上break防止穿透

7)case后面不能是实数

8)case语句之后默认的第一句话不能定义变量,如果非要定义比较加上大括号

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值