6 C语言——if else if.......else 常见问题分析

/*
    目的:测试if      else if    else if........else 语句使用中常出现的问题
    问题1:语句起止问题
    问题2:  最后一个else 后面不能加(表示式)
*/

一、if   else if......else语句执行起止问题

    if  else if.......else 基本语句形式如下:

    if (表达式A)
        语句A;
    else if(表达式B)
        语句B;
    else if(表达式C)
        语句C;
    else
        语句D;

    语句E;

    此段代码功能,如果表达式A成立,则执行语句A,执行完语句A后,即使表达式B 、表达式C均成立,程序也会跳出if else if.....else,直接执行语句E;如果表达式A不成立,再去判断表达式B,如果表达式B成立,则执行B语句,依次类推。如以下两段代码

代码1:
#include<stdio.h>

int main()
{
    if(3>2)
        printf("AAAA\n");
    else if(3>1)
        printf("BBBB\n");
    else if(2>1)
        printf("CCCC\n");
    else 
        printf("DDDD\n");
    
    printf("EEEE\n");

    return 0;
}
/*
VS2010调试结果
-----------------------------------------------
AAAA
EEEE
请按任意键继续. . .
-----------------------------------------------
*/

代码2

#include<stdio.h>

int main()
{
   if(2>3)
        printf("AAAA\n");
   else if(3>1)
        printf("BBBB\n");
   else if(2>1)
        printf("CCCC\n"); 
   else 
        printf("DDDD\n");
    
   printf("EEEE\n");

   return 0;
}
/*
VS2010调试结果
-----------------------------------------------
BBBB
EEEE
请按任意键继续. . .
-----------------------------------------------
*/

二、 最后一个else 后面不能加(表示式)

    if (表达式A)
        语句A;
    else if(表达式B)
        语句B;
    else if(表达式C)
        语句C;
    else (表达式D)   //此处如果添加表达式D,VS2010编译不过,提示有错误
        语句D;

    语句E;


版权声明:本文为sophiaorange原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。