选择控制语句if和switch

来源:互联网 发布:svd求逆矩阵 编辑:程序博客网 时间:2024/04/29 00:45

if语句

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


一if(表达式)

{

     语句块1

 } 后续语句;


二 ifelse

if ...else ...语句使用

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

if(表达式)

{

   语句块1

 }else{

    语句块2

}


三 else if

如果表达式1为真,则执行语句块1,否则判断表达式2,如果为真执行语句块2,否则再判断 表达式3,如果真执行语句块3, 当表达式123都不满足,会执行最后一个else语句。

if(表达式1)

{

   语句块1

}else if(表达式2){

   语句块2

}else if(表达式3){

   语句块3

}else{

   语句块4

}

可以理解为:判断+选择


if(表达式1)

{

   语句块1

}else if(表达式2){

   语句块2

}else if(表达式3){

   语句块3

}


.if(表达式)  省略括号

if(表达式)

   语句1;

   语句2;


if(表达式)

{

   语句1;

}

   语句2;



区分


if(表达式);

语句1;

语句2;


if(表达式)

{

}

语句1;

语句2;


注意点:

   

1.分支语句只会执行其中一个分支

2.省略括号只对下一条语句有效

   if(表达式){

   语句1;

   }

   语句2;

3.分支语句可以嵌套

   if(表达式1){

       

   if(表达式2){

             }

      }else{

     }

4.省略括号后下一句不允许定义变量

   if(表达式){

    int a =0;

     }

5.==判断的时候建议常量写在前面

      int a = 0;

      if(0 == a){

       ......   }

      if(a = 0){

           ....

         }


switch分支语句

1)使用格式

switch(表达式){        switch 表达式     必须是  整型常量,整型变量或者整型表达式

case 常量1: 语句1;    case  常量表达式 必须是整型 常量

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

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

default: 语句n+1;

}

其语义是:

计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如 表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。


case语句的穿透问题

case语句执行的过程中,一旦进入某个分支后就会一直执行到switch结束。

为了避免上述情况,使用break语句,可以跳出switch语句.



if分支和switch分支的选择

   

1)分支比较多且无法穷尽或进行大量列举 时最好用if

2)如果分支数量不是很多,但是使用if代码代码量比较大的时候,可以选用switch


if            可以理解为   判断语句   判断性为主

switch       可以理解为  选择语句  选择性为主

   

switch分支值得注意的地方

1) 表达式的类型(case语句后的值)必须是整型或可以转变为整型的值 (byteshortcharint类型)

整形变量   整形常量  返回值是整形的表达式   可以装换为int类型的表达式

2) 功能代码部分可以写任意多句。

3) case语句可以有任意多句,可以不用加括号“{}”

4) break关键字的意思是中断,指结束switch语句,break语句为可选。


1)case的值1、值2...n只能为整型常量(整数),不能为变量。

2)case后面不可以直接定义变量

如果在case后面定义的变量必须加上大括号


执行流程:在执行的过程中,如果遇到break语句,则跳出switch语句。如果没有遇到break 语句,则一直执行到switch语句的结束。


if语句代码实现:


#include


intmain(){

    

   //定义一个变量接收成绩

    

    intscore;

    

    //提示

    

    printf("请输入一个整数成绩:");

    

    //接收

    

    scanf("%d",&score);

    

    //判断

    

    if(score>= 80){

       

       printf("优秀\n");

    }elseif(score>=70){

       

       printf("良好\n");

       

    }elseif(score>= 60){

       

       printf("及格\n");

    }elseif(score>= 0&& score <<span style="font-variant-ligatures:no-common-ligatures; color: #272ad8">60 ){

       

       printf("不及格\n");

       

    }else{

       

       printf("非法输入\n");

    }

    

    return0;

 

}



switch语句代码实现


#include


intmain(){


   //定义一个接收成绩的变量

    

    intscore;

    

   //提醒用户输入

    printf("请输入一个整数成绩\n");

    

   //接收用户输入

    scanf("%d",&score);

    

   //缩小范围


    

    

    if(score>=0&& score<=100){

       

       score/= 10//--->    score = score /10;

       

       switch(score){

              

          case10:

          case9:

          case8:

              printf("优秀\n");

              break;

          case7:

              printf("良好\n");

              break;

          case6:

              printf("及格\n");

              break;

              

          default:

              printf("不及格\n");

              

       }

       

       

    }else{

       

       printf("请认真输入成绩,bb\n");

       

    }

    

    //判断

 


    return0;

 

}



0 0