关闭

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

292人阅读 评论(0) 收藏 举报
分类:

------<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
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2268次
    • 积分:117
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档