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

原创 2015年11月21日 19:55:58

------<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语句之后默认的第一句话不能定义变量,如果非要定义比较加上大括号

PHP分支控制语句 if...else 和 switch

if...else 语句实例: 注意: ☞else if 可以有多
  • u013372487
  • u013372487
  • 2015年04月27日 17:47
  • 1043

C#之switch多分支语句

C#之switch多分支语句           switch语句           根据一个表达式的结果值,在多个分支语句中查找相同的结果,并执行该分支语句中的语句块。           在...
  • nangeali
  • nangeali
  • 2017年03月17日 15:48
  • 812

switch语句与多重if选择结构的异同点

相同点:他们都是用来处理多分支条件的结构。   不同点:switch语句只能处理等值条件判断的情况,而且条件只能是整型变量或字符型变量。                  多重if选择结构的限制,特别...
  • wendy_yuanyuan
  • wendy_yuanyuan
  • 2015年08月31日 19:15
  • 3710

c++ switch语句的使用(case 后面可以跟N个语句)

switch语句在处理多分支语句时是一种清晰结构(相比于一系列的if else if ...), 在一般书上的讲解时会给出如下的一般形式: switch(表达式){ case 常量表达式1:...
  • yums467
  • yums467
  • 2014年12月01日 21:14
  • 11898

分支结构之switch篇

switch语句       switch语法:             switch(表达式){                     case 常量表达式1:           ...
  • q1989424
  • q1989424
  • 2015年10月17日 21:17
  • 538

switch语句用法详解

一般形式: switch(表达式){      case 常量表达式1:  语句1;     case 常量表达式2:  语句2;     …      case 常量表达式n:  语句n;...
  • ccMaa
  • ccMaa
  • 2016年03月28日 19:17
  • 56730

JAVA 控制流程之分支语句 (switch)

switch 和 if 都是分支语句,if 一般用于简单的分支判断,而 switch 常用于多分支判断。我们就来说一下 switch 分支语句。 switch 语句由一个控制表达式和多个case...
  • YS0813
  • YS0813
  • 2017年02月26日 15:16
  • 434

if和switch语句、循环语句while和do……while、for

一、if和switch的应用区别 if: 1、对具体的值进行判断 2、对区间进行判断 3、对运算结果是boolean类型的表达式进行判断 switch: 1、对具体值进行判断 2、值...
  • u011809714
  • u011809714
  • 2015年10月23日 15:30
  • 1192

分支结构 if...else和switch...case

1.1 顺序结构 任何编程语言中最常见的程序结构就是顺序结构,顺序结构就是程序从上到下一行一行的执行。如果mian方法 多行代码之间没有任何流程控制,程序总是从上往下依次执行。 1.2分支结构 jav...
  • zzh_408
  • zzh_408
  • 2015年05月12日 00:07
  • 1049

C语言-Switch 和case 的使用注意事项以及穿透效果的使用

switch  使用注意事项 //1、switch语句的表达式类型     //   1)可以放一个整型的变量 int num = 10;switch (num)     //   2)可以放一个整形...
  • u013977285
  • u013977285
  • 2015年08月12日 22:36
  • 5361
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员——分支语句if及switch的用法和注意事项
举报原因:
原因补充:

(最多只允许输入30个字)