黑马程序员技术交流社区

标题: 分支语句if [打印本页]

作者: 爱楚楚    时间: 2015-7-15 22:48
标题: 分支语句if
1、 格式:
    1)一般形式(第一种形式):表示如果表达式为真,执行语句块1,否则不执行。
if(表达式)
{
语句块1
} 后续语句;
如 if(a==5){
printf("恭喜你");
}
  2)第二种形式:
            if(表达式1){

                  语句块1;
            }else{

                   语句块2;

            }

   
            语意: 首先要获得表达式1的值

                  真(1): 执行语句块1
                  假(0): 执行语句块2

            注意:这种形式,不管表达式1的值是真是假,都会执行一个代码块

  3)第三种形式:

            嵌套的if语句的使用

            if(表达式1){
               
                 语句块1;
                 if(表达式2){

                     语句块3;        //表达式1为真 表达式2为真
                 }else{

                     语句块4;        // 表达式1为真 表达式2为假
                 }

            }else{
  
                 语句块2;
                 if(表达式3){
                     语句块5;       //表达式1为假    表达式3为真
                 }

            }

4)if...else if....else

           if(表达式1){

               语句块1;

           }else if(表达式2){
               语句块2;
           }else if(表达式3){
               语句块3;
           }.....
            .....

            else{

               语句块n//所有表达式的值都为假的情况

            }
2、if 语句使用注意点
1)if(条件) 可以直接写分号 “;” 表示什么也不干 “;” 空语句
2)if(条件) return 0; 程序不会往下执行了,直接退出
3)if(1)、if(-1) 表示永真 if(0) 表示为永假
4)if语句的作用域问题
if (age > 10) { printf("已经懂事了\n");
int num = 1000; }
printf("num = %d\n",num); //出错
5)if语句的作用域紊乱
6)if语句可以省略代码块
    1))if (a<3);  //if控制的代码块 是空得
    //printf("a = %d\n",a);
   
    2))if语句的代码块如果只有一句话,可以省略大括号
    if(a<3)
    //    printf("向钱看,向后赚\n");
   
    3))省略扩号的if和else
    if(a>3)
        printf("向钱看,向后赚\n");
    else
        printf("a = %d\n",a);




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2